亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

bzoj2733 [HNOI2012]永無鄉

2019-11-10 18:33:11
字體:
來源:轉載
供稿:網友

Description

永無鄉包含 n 座島,編號從 1 到 n,每座島都有自己的獨一無二的重要度,按照重要度可 以將這 n 座島排名,名次用 1 到 n 來表示。某些島之間由巨大的橋連接,通過橋可以從一個島 到達另一個島。如果從島 a 出發經過若干座(含 0 座)橋可以到達島 b,則稱島 a 和島 b 是連 通的。現在有兩種操作:B x y 表示在島 x 與島 y 之間修建一座新橋。Q x k 表示詢問當前與島 x連通的所有島中第 k 重要的是哪座島,即所有與島 x 連通的島中重要度排名第 k 小的島是哪 座,請你輸出那個島的編號。  

Input

輸入文件第一行是用空格隔開的兩個正整數 n 和 m,分別 表示島的個數以及一開始存在的橋數。接下來的一行是用空格隔開的 n 個數,依次描述從島 1 到島 n 的重要度排名。隨后的 m 行每行是用空格隔開的兩個正整數 ai 和 bi,表示一開始就存 在一座連接島 ai 和島 bi 的橋。后面剩下的部分描述操作,該部分的第一行是一個正整數 q, 表示一共有 q 個操作,接下來的 q 行依次描述每個操作,操作的格式如上所述,以大寫字母 Q 或B 開始,后面跟兩個不超過 n 的正整數,字母與數字以及兩個數字之間用空格隔開。 對于 20%的數據 n≤1000,q≤1000  對于 100%的數據 n≤100000,m≤n,q≤300000  

Output

對于每個 Q x k 操作都要依次輸出一行,其中包含一個整數,表 示所詢問島嶼的編號。如果該島嶼不存在,則輸出-1。  

Sample Input

5 1 4 3 2 5 1 1 2 7Q 3 2 Q 2 1 B 2 3 B 1 5 Q 2 1 Q 2 4 Q 2 3

Sample Output

-12512

正解:線段樹啟發式合并。

以前沒用過啟發式合并,這回學了一下來用。。

和主席樹很像,動態開結點,值域線段樹。每次合并時直接將兩顆線段樹的每個結點合并。復雜度。。均攤是log^2嗎??(其實我也不知道的說,不過學長說復雜度是對的。。)再用一個并查集維護連通性,于是這題就能完美AC了。然而HNOI居然會有水題。。

ps:啟發式合并復雜度證明,來自巨犇黃嘉泰(并沒有很看懂。。)

線段樹合并的時間復雜度證明

每一次合并的時間復雜度為 公共點個數

所以總的時間復雜度為T=∑第i次第i次的公共點個數設最大的深度為L=O(logn),進行一系列的推導:T=∑第i次第i次的公共點個數=∑第dep層∑第dep層的一個點ii點作為公共點的總次數=∑第dep層∑第dep層的一個點ii點沒有被覆蓋滿的次數由于最壞情況下,每次i子樹中指加入一個點,而第dep層的i子樹共有O(2L?dep)個點。所以有:T=∑第dep層∑第dep層的一個點ii點沒有被覆蓋滿的次數≤∑第dep層∑第dep層的一個點i2L?dep=∑第dep層2dep2L?dep=∑第dep層2L=L×2L=O(nlogn)所以單次的均攤復雜度為O(logn)

//It is made by wfj_2048~#include <algorithm>#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <vector>#include <cmath>#include <queue>#include <stack>#include <map>#include <set>#define N (100010)#define inf (1<<30)#define il inline#define RG register#define ll long long#define File(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)using namespace std;int sum[20*N],ls[20*N],rs[20*N],rt[N],fa[N],a[N],pos[N],n,m,sz;char s[5];il int gi(){    RG int x=0,q=1; RG char ch=getchar(); while ((ch<'0' || ch>'9') && ch!='-') ch=getchar();    if (ch=='-') q=-1,ch=getchar(); while (ch>='0' && ch<='9') x=x*10+ch-48,ch=getchar(); return q*x;}il int find(RG int x){ return fa[x]==x ? fa[x] : (fa[x]=find(fa[x])); }il void insert(RG int &x,RG int l,RG int r,RG int v){    if (!x) x=++sz; if (l==r){ sum[x]++; return; }    RG int mid=(l+r)>>1;    if (v<=mid) insert(ls[x],l,mid,v);    else insert(rs[x],mid+1,r,v);    sum[x]=sum[ls[x]]+sum[rs[x]]; return;}il int merge(RG int x,RG int y){    if (!x || !y) return x+y;    ls[y]=merge(ls[x],ls[y]);    rs[y]=merge(rs[x],rs[y]);    sum[y]=sum[ls[y]]+sum[rs[y]]; return y;}il int query(RG int x,RG int l,RG int r,RG int k){    if (l==r) return l; RG int mid=(l+r)>>1;    if (k<=sum[ls[x]]) return query(ls[x],l,mid,k);    else return query(rs[x],mid+1,r,k-sum[ls[x]]);}il void work(){    n=gi(),m=gi(); RG int u,v,x,k;    for (RG int i=1;i<=n;++i) a[i]=gi(),pos[a[i]]=i,fa[i]=i;    for (RG int i=1;i<=m;++i) u=gi(),v=gi(),u=find(u),v=find(v),fa[u]=v;    for (RG int i=1;i<=n;++i) insert(rt[find(i)],1,n,a[i]); m=gi();    for (RG int i=1;i<=m;++i){	scanf("%s",s);	if (s[0]=='B'){	    u=gi(),v=gi(),u=find(u),v=find(v);	    if (u!=v) fa[u]=v,rt[v]=merge(rt[u],rt[v]);	}	if (s[0]=='Q'){	    x=gi(),k=gi(),x=find(x);	    if (sum[rt[x]]<k){ PRintf("-1/n"); continue; }	    printf("%d/n",pos[query(rt[x],1,n,k)]);	}    }    return;}int main(){    File("neverland");    work();    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线视频在线播放完整版免费观看| 国产精品男人的天堂| 2019中文字幕在线免费观看| 热99在线视频| 精品美女永久免费视频| 国产精品久久国产精品99gif| 日韩在线播放一区| 欧美理论电影在线播放| 自拍偷拍亚洲区| 高跟丝袜欧美一区| 欧美性高跟鞋xxxxhd| 久久精品电影网站| 中文字幕日韩欧美精品在线观看| 久久久久国产视频| 欧美日韩激情视频8区| 欧美激情一区二区三区在线视频观看| 亚洲成人教育av| 欧美一乱一性一交一视频| 亚洲成人动漫在线播放| 国产一区二区免费| 欧美国产日本高清在线| 91精品国产高清久久久久久久久| 亚洲人成伊人成综合网久久久| 国产精品99久久久久久久久久久久| 5566成人精品视频免费| 国产精品99久久99久久久二8| 久久中文字幕一区| 国产精品日韩欧美综合| 国产美女搞久久| 日韩综合中文字幕| 午夜精品一区二区三区av| 中文字幕精品一区久久久久| 亚洲国产精品va在看黑人| 亚洲精品福利视频| 成人久久一区二区| 人人澡人人澡人人看欧美| 91免费福利视频| 欧美日韩亚洲精品内裤| 在线视频精品一| 色偷偷噜噜噜亚洲男人的天堂| 亚洲男女性事视频| 久久久久久久久久久免费| 欧美理论片在线观看| 亚洲国产天堂久久综合网| 96国产粉嫩美女| 91色精品视频在线| 国产这里只有精品| 97不卡在线视频| 日本电影亚洲天堂| 亚洲国产又黄又爽女人高潮的| 欧美极品美女视频网站在线观看免费| 国产一区玩具在线观看| 久久久电影免费观看完整版| 久久人人爽人人爽人人片av高请| 日韩成人av网| 高清亚洲成在人网站天堂| 亚洲人成在线一二| 欧美激情免费在线| 国产精品黄色影片导航在线观看| 亚洲美女精品久久| 亚洲日本欧美日韩高观看| 日韩在线观看免费高清| 亚洲自拍偷拍色片视频| 日韩视频免费看| 国产视频综合在线| 欧美亚洲午夜视频在线观看| 亚洲国产精品久久精品怡红院| 国产精品白嫩美女在线观看| 在线播放国产精品| 国产成人黄色av| www.欧美三级电影.com| 国产精品免费一区豆花| 亚洲成人久久一区| 欧美极品少妇xxxxⅹ喷水| 欧美另类极品videosbestfree| 中文字幕亚洲欧美在线| 日韩久久午夜影院| 欧美日韩免费网站| 韩国福利视频一区| 黄色一区二区在线| 欧美精品生活片| 国产午夜精品一区理论片飘花| 国产精品手机播放| 国产一区二区激情| 大胆欧美人体视频| 亚洲精品国偷自产在线99热| 日韩亚洲精品视频| 欧美性xxxxhd| 日韩欧亚中文在线| 国产精品一区二区久久| 中文字幕不卡在线视频极品| 国产精品视频一区二区三区四| 国产激情久久久| 欧美黑人国产人伦爽爽爽| 亚洲精品电影网站| 欧美激情中文字幕在线| 一色桃子一区二区| www国产91| 日韩国产欧美精品一区二区三区| 国模精品一区二区三区色天香| 91精品国产高清久久久久久91| 久久99国产精品久久久久久久久| 精品呦交小u女在线| 欧美一区在线直播| 欧美激情精品久久久久久久变态| 久久久久久亚洲精品不卡| 欧美最猛性xxxxx亚洲精品| 久久精品99久久久久久久久| 国产拍精品一二三| 欧美性猛交99久久久久99按摩| 国产日韩欧美成人| 亚洲人午夜色婷婷| 91九色在线视频| 亚洲天堂av在线免费观看| 精品香蕉一区二区三区| 国产精品99蜜臀久久不卡二区| 亚洲欧洲在线观看| 久久久久久久国产精品| 欧美激情三级免费| 精品亚洲一区二区| 欧美国产在线电影| 国产精品99久久99久久久二8| 91深夜福利视频| 88国产精品欧美一区二区三区| 久久久久久久久久av| 欧美极品少妇xxxxⅹ裸体艺术| 欧美韩国理论所午夜片917电影| 91av成人在线| 欧美孕妇孕交黑巨大网站| 国产午夜精品免费一区二区三区| 久热精品视频在线免费观看| 欧美日韩国产色视频| 国产成人在线亚洲欧美| 日韩免费视频在线观看| 668精品在线视频| 色哟哟亚洲精品一区二区| 久久久免费高清电视剧观看| 亚洲国产天堂网精品网站| 日韩精品视频免费专区在线播放| 欧美日韩美女视频| 日韩一区二区在线视频| 中文字幕av一区二区| 欧美日韩国产综合视频在线观看中文| 欧美精品一区二区三区国产精品| 久久91精品国产| 欧美一区二区三区……| 日韩电影在线观看中文字幕| 18久久久久久| 国产精品电影一区| 国产精品自产拍高潮在线观看| 欧美成人免费一级人片100| 亚洲直播在线一区| 国产精品情侣自拍| 欧美日韩在线观看视频小说| 三级精品视频久久久久| 亚洲电影免费观看高清完整版| 欧美日韩在线免费| 中文在线资源观看视频网站免费不卡| 久久99精品久久久久久琪琪| 国产精品一区二区久久久| 精品福利一区二区| 亚洲精品永久免费精品| 国产精品普通话| 最近2019年好看中文字幕视频|