5177. 【NOIP2017提高組模擬6.28】TRAVEL (Standard IO)

Description

?

Input

Output

Solution

有大佬說:可以用LCT做。(會嗎?不會)

對于蒟蒻的我,只好用水法(3s,不虛)。

首先選出的泡泡怪一定是連續的一段 L,

R 然后 L 一定屬于蟲洞左邊界中的某一個 R 也同樣是這樣的 這樣就可以枚舉 L 和 R,

O(N)判斷是否可行,可用并查集, 總復雜度 O(NM^2)。

?

代碼

?

  1 type
  2   arr=record
  3     x,y,l,r:longint;
  4   end;
  5 var
  6   n,m,tk,ans,ll:longint;
  7   a:array [0..3001] of arr;
  8   fa:array [0..1001] of longint;
  9 function max(o,p:longint):longint;
 10 begin
 11   if o>p then exit(o);
 12   exit(p);
 13 end;
 14 
 15 procedure init;
 16 var
 17   i:longint;
 18 begin
 19   readln(n,m);
 20   tk:=0;
 21   for i:=1 to m do
 22     begin
 23       readln(a[i].x,a[i].y,a[i].l,a[i].r);
 24       tk:=max(tk,a[i].r);
 25     end;
 26 end;
 27 
 28 procedure qsort(l,r:longint);
 29 var
 30   i,j,mid:longint;
 31   t:arr;
 32 begin
 33   if l>r then exit;
 34   i:=l; j:=r;
 35   mid:=a[(l+r) div 2].r;
 36   repeat
 37     while a[i].r<mid do inc(i);
 38     while a[j].r>mid do dec(j);
 39     if i<=j then
 40       begin
 41         t:=a[i]; a[i]:=a[j]; a[j]:=t;
 42         inc(i); dec(j);
 43       end;
 44   until i>j;
 45   qsort(i,r);
 46   qsort(l,j);
 47 end;
 48 
 49 function get(x:longint):longint;
 50 begin
 51   if (fa[x]=0) or (fa[x]=x) then exit(x);
 52   fa[x]:=get(fa[x]);
 53   exit(fa[x]);
 54 end;
 55 
 56 function fd(l,r:longint):boolean;
 57 var
 58   i,x,y:longint;
 59 begin
 60   fillchar(fa,sizeof(fa),0);
 61   for i:=1 to m do
 62     if (a[i].l<=l) and (a[i].r>=r) then
 63       begin
 64         x:=get(a[i].x); y:=get(a[i].y);
 65         fa[x]:=y;
 66       end;
 67   if get(1)=get(n) then exit(true);
 68   exit(false);
 69 end;
 70 
 71 procedure main;
 72 var
 73   i,r,l,mid,t:longint;
 74 begin
 75   ans:=0;
 76   for i:=1 to m do
 77     begin
 78       l:=1; r:=tk;
 79       while l+1<r do
 80         begin
 81           mid:=(l+r) div 2;
 82           if fd(a[i].l,mid) then l:=mid
 83                             else r:=mid;
 84         end;
 85       if not fd(a[i].l,r) then r:=l;
 86       t:=r-a[i].l+1;
 87       if (t>ans) or (t=ans) and (a[i].l<ll) then
 88         begin
 89           ans:=t; ll:=a[i].l;
 90         end;
 91     end;
 92 end;
 93 
 94 procedure print;
 95 var
 96   i,rr:longint;
 97 begin
 98   writeln(ans);
 99   rr:=ans+ll-1;
100   for i:=ll to rr do
101     write(i,' ');
102 end;
103 
104 begin
105   init;
106   qsort(1,m);
107   main;
108   print;
109 end.

?

轉載于:https://www.cnblogs.com/zyx-crying/p/9464330.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250950.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250950.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250950.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python 3.x 爬蟲基礎---http headers詳解

python 3.x 爬蟲基礎 python 3.x 爬蟲基礎---http headers詳解 python 3.x 爬蟲基礎---Urllib詳解 python 3.x 爬蟲基礎---Requersts,BeautifulSoup4&#xff08;bs4&#xff09; python 3.x 爬蟲基礎---正則表達式 前言  上一篇文章 python 爬蟲入門案例----爬取某站上海租房…

Webpack進階(三)

懶加載 lazy loading 用到的時候才加載vue 首屏不加載index.js const oBtn document.getElementById(j-button) oBtn.onclick async function () {const div await createElement()document.body.appendChild(div) } async function createElement() {const { default: _ …

P2634 [國家集訓隊]聰聰可可

鏈接&#xff1a;https://www.luogu.org/problemnew/show/P2634 題目描述 聰聰和可可是兄弟倆&#xff0c;他們倆經常為了一些瑣事打起來&#xff0c;例如家中只剩下最后一根冰棍而兩人都想吃、兩個人都想玩兒電腦&#xff08;可是他們家只有一臺電腦&#xff09;……遇到這種問…

算法 --- 快慢指針判斷鏈表是否有環

解題思路: 分別設置2個指針(s,q)指向鏈表的頭部,s每次指向下面一個(s s.next),q每次指向下面2個(q q.next.next). 如果存在環,q總會在某一時刻追上s /*** Definition for singly-linked list.* function ListNode(val) {* this.val val;* this.next null;* }*//**…

APP拉起小程序

結論&#xff1a;APP可以喚起小程序&#xff0c;前提是APP開發者在微信開放平臺帳號下申請移動應用&#xff0c;通過審核并關聯小程序&#xff0c;參考如下&#xff1a; 準備工作: APP開發者認證微信開放平臺 https://kf.qq.com/faq/170824URbmau170824r2uY7j.html APP開發者…

node --- 使用nrm改變npm的源

說明: 1.nrm只是單純的提供了幾個常用的下載包的URL地址,方便我們再使用npm裝包是 很方便的進行切換. 2.nrm提供的cnpm 和通過 cnpm裝包是2個不同的東西(使用cnpm install必須先安裝cnpm -> npm install -g cnpm) 安裝nrm: // linux $ [sudo] npm install --global nrm// w…

MySQL教程(三)—— MySQL的安裝與配置

1 安裝MySQL 打開附件中的文件&#xff08;分別對應電腦系統為32/64位&#xff09;。點next。 三個選項&#xff0c;分別對應典型安裝、自定義安裝和完全安裝&#xff0c;在此選擇典型安裝&#xff08;初學者&#xff09;。 點install。 廣告&#xff0c;忽略它。 安裝完成…

算法面經之百度

一、百度 前言&#xff1a;本來不打算寫百度面筋的&#xff0c;因為二面表現自我感覺實在太差了&#xff0c;像是被生活抽了一記耳光&#xff0c;不愿再去揭傷疤&#xff0c;奈何&#xff0c;半個月過去了&#xff0c;昨天又被百度從備胎池拉出來涮了一遍&#xff0c;涮的時候也…

flask-session總結

一、session session和cookie的原理和區別&#xff1a; cookie是保存在瀏覽器上的鍵值對 session是存在服務端的鍵值對&#xff08;服務端的session就是一個大字典&#xff0c;字典中是隨機字符串&#xff09;&#xff08;session與request原理相同&#xff09;&am…

c++ --- 字符串中的標點符號

題外話: 最近看node,發現node中好多強大的功能都設計到C,為了加深對node的理解,開始簡單的學習一下C語法 ispunct: 統計string對象中標點符號的個數 #include <iostream> using namespace std; int main () {string s ("Hello World!");decltype(s.size()) p…

Hadoop(5)-Hive

在Hadoop的存儲處理方面提供了兩種不同的機制&#xff0c;一種是之前介紹過的Hbase&#xff0c;另外一種就是Hive&#xff0c;有關于Hbase&#xff0c;它是一種nosql數據庫的一種&#xff0c;是一種數據庫&#xff0c;基于分布式的列式存儲&#xff0c;適合海量數據的操作&…

高精——模板

紫書&#xff1a; #include <iostream> #include <string> #include <cstring> #include <cstdio> using namespace std; const int maxn 1000; struct bign{ int d[maxn], len; void clean() { while(len > 1 && !d[len-1]) …

認識及實現MVC

gitee M&#xff1a;Model 數據模型&#xff08;模型層&#xff09;→ 操作數據庫&#xff08;對數據進行增刪改查&#xff09; V&#xff1a;View視圖層 → 顯示視圖或視圖模板 C&#xff1a;Controller 控制器層 → 邏輯層 數據和視圖關聯掛載和基本的邏輯操作 API層 前端請…

算法 --- 翻轉二叉樹

解(C): 1.二叉樹判空 if(root 0) 或 if(root nullptr); 2.二叉樹的左子樹: root->left . 3.使用遞歸,將當前根節點的左右指針指向互換左向右子樹(此時右子樹也進行了翻轉) // C /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode…

float 常見用法與問題--摘抄

float 屬性絕對是眾多切圖仔用的最多的 CSS 屬性之一&#xff0c;它的用法很簡單&#xff0c;常用值就 left、right、none 三個&#xff0c;但是它的特性你真的弄懂了嗎&#xff1f; 我會在這里介紹我對 float 的認識與使用&#xff0c;以及使用過程中遇到的問題。 對 float 的…

javascipt -- find方法和findIndex方法的實現

find: 根據傳入的條件函數,返回符合條件的第一項 var arr [{id: 1, name: zs, age: 18},{id: 2, name: zs, age: 17},{id: 3, name: ls, age: 16},{id: 4, name: ls, age: 15}]Array.prototype._find_ function(cb){for(var i0; i< this.length; i){if(cb(this[i],i)){ret…

bzoj 2179 FFT快速傅立葉 FFT

題面 題目傳送門 解法 題如其名…… 不妨將多項式的\(x^i\)變成\(10^i\)&#xff0c;然后就是一個比較簡單的FFT了 md讀進來的是一個字符串&#xff0c;并且要倒序 最后注意進位問題 時間復雜度&#xff1a;\(O(n\ log\ n)\) 代碼 #include <bits/stdc.h> #define N 1 &l…

【探討】javascript事件機制底層實現原理

前言 又到了扯淡時間了&#xff0c;我最近在思考javascript事件機制底層的實現&#xff0c;但是暫時沒有勇氣去看chrome源碼&#xff0c;所以今天我來猜測一把 我們今天來猜一猜&#xff0c;探討探討&#xff0c;javascript底層事件機制是如何實現的 博客里面關于事件綁定與執行…

node --- 在node中使用mongoosemongoDB的安裝

*首先確保,你的電腦安裝了mongodb,網址: mongodb官網 *使用npm安裝 mongoose: mongoose官網 ps:mongoose是Node中操作mongoDB的第三方插件.用于提高數據庫操作效率(相當于在mongoDB上封裝了一次,暴露出更友好的API) MongoDB的安裝 1.下載地址 2.下載好了后,傻瓜式的安裝(我的…