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

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

hdu 1512 左偏樹

2019-11-11 03:57:47
字體:
來源:轉載
供稿:網友

題目:

Monkey King

Time Limit: 10000/5000 MS (java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5571    Accepted Submission(s): 2395PRoblem DescriptionOnce in a forest, there lived N aggressive monkeys. At the beginning, they each does things in its own way and none of them knows each other. But monkeys can't avoid quarrelling, and it only happens between two monkeys who does not know each other. And when it happens, both the two monkeys will invite the strongest friend of them, and duel. Of course, after the duel, the two monkeys and all of there friends knows each other, and the quarrel above will no longer happens between these monkeys even if they have ever conflicted.Assume that every money has a strongness value, which will be reduced to only half of the original after a duel(that is, 10 will be reduced to 5 and 5 will be reduced to 2).And we also assume that every monkey knows himself. That is, when he is the strongest one in all of his friends, he himself will go to duel. InputThere are several test cases, and each case consists of two parts.First part: The first line contains an integer N(N<=100,000), which indicates the number of monkeys. And then N lines follows. There is one number on each line, indicating the strongness value of ith monkey(<=32768).Second part: The first line contains an integer M(M<=100,000), which indicates there are M conflicts happened. And then M lines follows, each line of which contains two integers x and y, indicating that there is a conflict between the Xth monkey and Yth. OutputFor each of the conflict, output -1 if the two monkeys know each other, otherwise output the strongness value of the strongest monkey in all friends of them after the duel. Sample Input
520161010452 33 43 54 51 5 Sample Output
855-110

分析:

每一只猴子看做一個結點,建立左偏樹,樹根維護最大值。若兩結點樹根相同,說明兩只猴子是朋友,輸出-1;

否則,兩根節點值減半,刪除,重新與原樹合并得兩新樹,兩新樹合并后返回根節點值。

本題僅涉及到左偏樹部分操作。

左偏樹入門:

http://wenku.baidu.com/view/1c18eff9aef8941ea76e051b.html

http://wenku.baidu.com/view/004aa1ee19e8b8f67c1cb9d4.html?from=search

http://sunmoon-template.blogspot.ca/2014_12_01_archive.html

代碼:

#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>#include<ctype.h>    //tower()#include<set>#include<iomanip>// cout<<setprecision(1)<<fixed<<a;#include<vector>   #include<time.h>  #include<assert.h>  //assert#include<cmath>	#include<algorithm>#include<bitset>#include<limits.h>#include<stack>#include<queue>using namespace std;const int maxn=100050;const int inf=INT_MAX-100;struct node{    int val,dis,lt,rt,fa;//fa 父節點}ltree[maxn];int n,q,t;void maketree(int a,int k){//結點成樹 a結點值為k     ltree[a].val=k;    ltree[a].fa=a;    ltree[a].lt=ltree[a].rt=0;    ltree[a].dis=(a==0)?-1:0;}int find(int x){//非遞歸路徑壓縮,返回所在樹根節點     int s,k,j;    s=k=x;    while(s!=ltree[s].fa) s=ltree[s].fa;    while(k!=s){        j=ltree[k].fa;        ltree[k].fa=s;        k=j;    }    return s;}int merge(int a,int b){//兩棵樹合并 改變rt,dis,fa     if(a==0) return b;    if(b==0) return a;    if(ltree[a].val<ltree[b].val) swap(a,b);    ltree[a].rt=merge(ltree[a].rt,b);//b接在a最右邊 	int &l=ltree[a].lt,&r=ltree[a].rt;//左右子樹的引用,取別名,不另占內存,值同時修改        ltree[r].fa=a;//ltree[l].fa=    if(ltree[l].dis<ltree[r].dis) swap(l,r);//維持左偏性     if(r==0) ltree[a].dis=0;	else ltree[a].dis=ltree[r].dis+1;    return a;}int solve(int a,int b){	int tmp,ta,tb;	a=find(a);	b=find(b);	if(a==b) return -1;//	ltree[ltree[a].lt].fa=ltree[a].lt;//	ltree[ltree[a].rt].fa=ltree[a].rt;	ltree[a].val>>=1;	tmp=merge(ltree[a].lt,ltree[a].rt);	ltree[a].dis=ltree[a].lt=ltree[a].rt=0;    ta=merge(tmp,a);//	ltree[ltree[b].lt].fa=ltree[b].lt;//	ltree[ltree[b].rt].fa=ltree[b].rt;	ltree[b].val>>=1; 	tmp=merge(ltree[b].lt,ltree[b].rt);	ltree[b].dis=ltree[b].lt=ltree[b].rt=0;    tb=merge(tmp,b);        tmp=merge(ta,tb);    ltree[tmp].fa=ltree[ta].fa=ltree[tb].fa=tmp;    return ltree[tmp].val;}int main(){//795MS	3540K    while(~scanf("%d",&n)){	    for(int i=1;i<=n;++i){	        scanf("%d",&t);	        maketree(i,t);	    }//	    maketree(0,0);	    scanf("%d",&q);	    int c,d;	    for(int i=0;i<q;++i){	        scanf("%d%d",&c,&d);	        printf("%d/n",solve(c,d));	    }    }    return 0;    }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩成人在线播放| 日韩中文在线中文网三级| 久久视频免费在线播放| 欧美人在线视频| 久久精品久久久久久国产 免费| 国产日韩欧美在线| 欧美激情综合色综合啪啪五月| 欧美日韩精品在线观看| 日日狠狠久久偷偷四色综合免费| 久久成人人人人精品欧| 国产亚洲精品美女久久久| 欧美大片第1页| 精品一区二区三区四区在线| 热99在线视频| 欧美日在线观看| 国产精品一区二区三区在线播放| 亚洲影院在线看| 国产日本欧美一区二区三区在线| 久久99国产精品久久久久久久久| 欧美性色19p| 91久久久久久| 亚洲男人天堂九九视频| 欧美另类老肥妇| 久久久电影免费观看完整版| 精品国内亚洲在观看18黄| 亚洲桃花岛网站| 美日韩在线视频| 久久久999成人| 亚洲欧美色婷婷| 亚洲精品国产精品自产a区红杏吧| 欧美性少妇18aaaa视频| 国产在线一区二区三区| 成人国产精品色哟哟| 不卡av在线网站| 国产亚洲视频中文字幕视频| 亚洲天堂av电影| 亚洲高清久久久久久| 国产成人精品av| 国产在线观看91精品一区| 亚洲精品成a人在线观看| 欧美一级视频免费在线观看| 国产精品96久久久久久又黄又硬| 亚洲国产成人久久| 亚洲一区中文字幕在线观看| 国产亚洲欧美日韩美女| 亚洲加勒比久久88色综合| 国产美女精品视频| 国产一区二区动漫| 日韩精品视频三区| 日韩欧美综合在线视频| 色狠狠久久aa北条麻妃| 国产日韩欧美自拍| 5278欧美一区二区三区| 亚洲人成人99网站| 亚洲国产精品国自产拍av秋霞| 亚洲男人第一网站| 最近2019中文免费高清视频观看www99| 91精品国产91久久久久久最新| 2019中文字幕免费视频| 国产做受69高潮| 久久久国产精品一区| 日韩精品视频中文在线观看| 全亚洲最色的网站在线观看| 亚洲欧美另类人妖| 国产精品自产拍在线观看| 欧美日韩综合视频网址| 不卡av在线播放| 亚洲香蕉成人av网站在线观看| 国产精品第七影院| 日韩激情av在线免费观看| 伊人久久久久久久久久久| 日韩欧美在线免费| 国产成人精品999| 日韩中文字幕在线看| www欧美日韩| 亚洲综合一区二区不卡| 国产精品成熟老女人| 亚洲男人天堂九九视频| 欧美日韩视频免费播放| 国产69久久精品成人看| 久久91亚洲人成电影网站| 热re91久久精品国99热蜜臀| 91视频国产一区| 91久久精品一区| 日韩有码在线观看| 久久综合电影一区| 韩国国内大量揄拍精品视频| 九色精品免费永久在线| 91理论片午午论夜理片久久| 成人激情视频免费在线| 久久69精品久久久久久国产越南| 国产精品一久久香蕉国产线看观看| 欧美老肥婆性猛交视频| 亚洲春色另类小说| 91高清视频免费观看| 91色琪琪电影亚洲精品久久| 国产成人在线精品| 国产精品久久久久99| 日本精品一区二区三区在线| 精品国产欧美一区二区三区成人| 国产综合色香蕉精品| 国产精品极品美女粉嫩高清在线| 夜夜狂射影院欧美极品| 日本伊人精品一区二区三区介绍| 国产精品爽爽ⅴa在线观看| 久久av中文字幕| www.亚洲免费视频| 亚洲japanese制服美女| 在线电影欧美日韩一区二区私密| 国产精品7m视频| 久久亚洲国产成人| 日韩欧美国产视频| 国产亚洲人成a一在线v站| 精品自在线视频| 国产精品激情自拍| 亚洲自拍高清视频网站| 91久久久久久久久久| 欧美影院在线播放| 欧美老女人bb| 亚洲成人久久网| 91免费电影网站| 日韩欧美中文免费| 久久久之久亚州精品露出| 91在线观看免费网站| 欧美诱惑福利视频| 中文字幕在线观看亚洲| 国产成人精品一区二区三区| 欧美巨猛xxxx猛交黑人97人| 中文字幕亚洲欧美日韩高清| 欧美日韩另类在线| 国产精品爽爽ⅴa在线观看| 国产免费一区二区三区在线能观看| 日韩电影免费观看中文字幕| 日韩成人在线视频观看| 91欧美日韩一区| 成人精品视频在线| 亚洲第一页自拍| 亚洲一区二区久久久久久| 久久久久免费视频| 三级精品视频久久久久| 亚洲欧美中文另类| 国产精品揄拍500视频| 色妞色视频一区二区三区四区| 亚洲国产另类 国产精品国产免费| 国产在线观看不卡| 在线观看视频99| 成人精品视频99在线观看免费| 久久理论片午夜琪琪电影网| 国产专区欧美专区| 欧美成人精品h版在线观看| 成人羞羞国产免费| 欧美成人精品在线播放| 亚洲成人性视频| 久久久久久久激情视频| 亚洲精品98久久久久久中文字幕| 91免费欧美精品| 欧美亚洲另类制服自拍| 国产精品日韩专区| 日本午夜在线亚洲.国产| 日韩欧美中文在线| 日韩精品丝袜在线| 久久精品美女视频网站| 欧美成人四级hd版| 精品国产乱码久久久久酒店|