日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bzoj2333[SCOI2011]棘手的操作

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bzoj2333[SCOI2011]棘手的操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

可以大力寫一個平衡樹啟發式合并,除了每個連通塊維護一個平衡樹再對全局維護一個平衡樹,每個節點表示某一個連通塊的最大值.我的常數比較大,危險地卡過去了.

#include<cstdio> #include<cstdlib> #include<algorithm> using namespace std; const int maxn=300005; struct node{node *ch[2];int Max,mark,ord,num,key,sz;node(int x,int w){ord=rand();num=x;Max=key=w;mark=0;ch[0]=ch[1]=0;sz=1;}void update(){Max=key;sz=1;if(ch[0])sz+=ch[0]->sz;if(ch[1])sz+=ch[1]->sz;if(ch[0]&&ch[0]->Max>Max)Max=ch[0]->Max;if(ch[1]&&ch[1]->Max>Max)Max=ch[1]->Max;}void add(int x){Max+=x;mark+=x;key+=x;}void pushdown(){if(mark){if(ch[0])ch[0]->add(mark);if(ch[1])ch[1]->add(mark);mark=0;}} }; node* Super; void rot(node* &rt,int t){node* c=rt->ch[t];rt->pushdown();c->pushdown();rt->ch[t]=c->ch[t^1];c->ch[t^1]=rt;rt=c;c->ch[t^1]->update();c->update(); } void Insert(node* &rt,int x,int w){//printf("%d %d\n",x,w);if(!rt){rt=new node(x,w);return;}int t=(x>rt->num);rt->pushdown();Insert(rt->ch[t],x,w);rt->update();if(rt->ch[t]->ord>rt->ord)rot(rt,t); } void remove(node* &rt,int x){if(rt->num!=x){rt->pushdown();remove(rt->ch[x>rt->num],x);rt->update();}else{if(!rt->ch[0]){rt=rt->ch[1];}else if(!rt->ch[1]){rt=rt->ch[0];}else if(rt->ch[0]->ord>rt->ch[1]->ord){rot(rt,0);remove(rt->ch[1],x);rt->update();}else{rot(rt,1);remove(rt->ch[0],x);rt->update();}} } int ufs[maxn]; int find(int x){return (x==ufs[x])?x:ufs[x]=find(ufs[x]); } node* root[maxn]; void Union(node* rt1,node* &rt2){if(!rt1)return;Insert(rt2,rt1->num,rt1->key);rt1->pushdown();Union(rt1->ch[0],rt2);Union(rt1->ch[1],rt2);delete rt1; } void link(int a,int b){int ra=find(a),rb=find(b);if(root[ra]->sz>root[rb]->sz)swap(ra,rb);ufs[ra]=rb;Union(root[ra],root[rb]);remove(Super,ra);remove(Super,rb);Insert(Super,find(a),root[find(a)]->Max); } void incr(node* rt,int x,int w){rt->pushdown();if(x==rt->num){rt->key+=w;rt->update();return;}else{incr(rt->ch[x>rt->num],x,w);rt->update();return;} } int getkey(node* rt,int x){rt->pushdown();if(rt->num==x)return rt->key;return getkey(rt->ch[x>rt->num],x); } int Globalmark=0; int main(){int n;scanf("%d",&n);int x;for(int i=1;i<=n;++i){scanf("%d",&x);Insert(Super,i,x);root[i]=new node(i,x);ufs[i]=i;}char buf[5];int m;scanf("%d",&m);int a,b;for(int i=1;i<=m;++i){scanf("%s",buf);if(buf[0]=='U'){scanf("%d%d",&a,&b);if(find(a)!=find(b))link(a,b);}else if(buf[0]=='A'){if(buf[1]=='1'){scanf("%d%d",&a,&b);incr(root[find(a)],a,b);remove(Super,find(a));Insert(Super,find(a),root[find(a)]->Max);}else if(buf[1]=='2'){scanf("%d%d",&a,&b);root[find(a)]->add(b);incr(Super,find(a),b);}else{scanf("%d",&b);Globalmark+=b;}}else if(buf[0]=='F'){if(buf[1]=='1'){scanf("%d",&a);printf("%d\n",getkey(root[find(a)],a)+Globalmark);}else if(buf[1]=='2'){scanf("%d",&a);printf("%d\n",root[find(a)]->Max+Globalmark);}else{printf("%d\n",Super->Max+Globalmark);}}}return 0; }

?

轉載于:https://www.cnblogs.com/liu-runda/p/6396883.html

總結

以上是生活随笔為你收集整理的bzoj2333[SCOI2011]棘手的操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜福利视频 | 国产精品观看 | 强乱中文字幕av一区乱码 | 人人澡人人草 | 成人午夜视频一区二区播放 | 久久国产精品久久久久久电车 | 久久精品在这里 | 亚洲日本色 | 黄色片子视频 | 天天av天天| 夜夜春视频 | 少妇一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 日韩va亚洲va欧美va久久 | 免费裸体美女网站 | 国产日比视频 | v片在线看 | 男女做激情爱呻吟口述全过程 | 在线视频播放大全 | 亚洲精品蜜桃 | 免费日韩在线 | 国产又大又黑又粗 | 亚洲国产清纯 | 91精品久久久久久久久久 | 在线免费观看黄网站 | 在线免费黄色网 | 日本午夜在线视频 | 日本在线网址 | 就爱啪啪网站 | jizz中国女人| 欧美专区在线 | 鲁大师私人影院在线观看 | 邻居少妇张开腿让我爽了在线观看 | 西西人体www大胆高清 | 久久色在线 | 黑花全肉高h湿play短篇 | 欧美综合图区 | 亚洲综合视频网 | 一区二区三区在线看 | 青青草原综合网 | av福利在线看 | 亚洲激情专区 | 91ts人妖另类精品系列 | 秘密基地在线观看完整版免费 | 国产又爽又黄游戏 | 别揉我奶头一区二区三区 | 你懂的日韩 | 青青在线观看视频 | 国产叼嘿视频在线观看 | 99riav国产精品 | 亚洲男人第一网站 | 女人私密又肥又大 | 精品无码m3u8在线观看 | 国产精品成久久久久三级 | 国产日韩av在线 | av黄| 成人片在线视频 | 五月天堂网 | 九色.com | 免费国产区 | 国产精品毛片一区二区三区 | 性猛╳xxx乱大交 | 亚洲欧美精品在线 | 污污软件在线观看 | 国产在线免费观看 | 日本一区免费电影 | 打屁股疼的撕心裂肺的视频 | 成人免费大片黄在线播放 | 日本伊人网 | 欧美黄网站 | 亚洲天堂麻豆 | 不卡在线一区二区 | 国产免费av一区二区三区 | 泰坦尼克号3小时49分的观看方法 | 亚洲国产成人在线观看 | 国产乱淫精品一区二区三区毛片 | 久草免费福利视频 | 国产91在线免费观看 | 理论片毛片 | 久草视频精品在线 | 精品免费久久久 | 日韩高清欧美 | 婷婷色中文 | 日韩精品久| 亚洲国产一区在线 | 久久久久久久久久久97 | 国产免费啪啪 | 欧美18av| 欧美午夜精品一区二区蜜桃 | aa一级黄色片 | 91精品一区二区三区四区 | 日韩首页 | 99久久久精品免费观看国产 | 欧美激情va永久在线播放 | 欧美8888| 波多野结衣一区二区在线 | 新天堂av | 国产8区| 日韩爱爱爱 |