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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BZOJ2002: [Hnoi2010]Bounce 弹飞绵羊

發(fā)布時間:2025/7/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ2002: [Hnoi2010]Bounce 弹飞绵羊 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

n<=200000個點,從i會跳到$i+num_i$,保證$num_i>0$,m<=100000個兩種操作:一、修改一個$num$;二、問從$i$開始跳多少步跳出這個序列。

大概是LCT的模板題了。

記住access操作,不停的旋完把右子樹騰給兒子。其他可以自行推。

1 #include<string.h> 2 #include<stdlib.h> 3 #include<stdio.h> 4 #include<math.h> 5 //#include<assert.h> 6 #include<algorithm> 7 //#include<iostream> 8 //#include<bitset> 9 using namespace std; 10 11 int n,m; 12 #define maxn 200011 13 struct LCT 14 { 15 struct Node 16 { 17 int fa,son[2]; 18 bool rev; 19 int size,realroot; 20 }a[maxn]; 21 void makeatree(int id) 22 { 23 a[id].fa=a[id].son[0]=a[id].son[1]=a[id].rev=0; 24 a[id].size=1; a[id].realroot=id; 25 } 26 void up(int x) 27 { 28 if (!x) return; 29 int &p=a[x].son[0],&q=a[x].son[1]; 30 a[x].size=a[p].size+a[q].size+1; 31 } 32 void revsingle(int x) 33 { 34 if (!x) return; 35 a[x].rev^=1; 36 int &p=a[x].son[0],&q=a[x].son[1]; 37 p^=q; q^=p; p^=q; 38 } 39 void down(int x) 40 { 41 int &p=a[x].son[0],&q=a[x].son[1]; 42 if (a[x].rev) {revsingle(p); revsingle(q); a[x].rev=0;} 43 a[p].realroot=a[q].realroot=a[x].realroot; 44 } 45 int sta[maxn]; 46 void download(int x) 47 { 48 int top=0,i; for (i=x;!isroot(i);i=a[i].fa) sta[++top]=i; sta[++top]=i; 49 for (;top;top--) down(sta[top]); 50 } 51 bool isroot(int x) 52 { 53 if (a[x].fa==0) return 1; 54 return (a[a[x].fa].son[0]!=x && a[a[x].fa].son[1]!=x); 55 } 56 void rotate(int x) 57 { 58 const int y=a[x].fa,z=a[y].fa; 59 bool w=(x==a[y].son[0]); 60 a[x].fa=z; 61 if (!isroot(y)) a[z].son[y==a[z].son[1]]=x; 62 a[y].son[w^1]=a[x].son[w]; 63 if (a[x].son[w]) a[a[x].son[w]].fa=y; 64 a[x].son[w]=y; 65 a[y].fa=x; 66 up(y); up(z); 67 } 68 void splay(int x) 69 { 70 if (!x) return; 71 download(x); 72 while (!isroot(x)) 73 { 74 const int y=a[x].fa,z=a[y].fa; 75 if (!isroot(y)) 76 { 77 if ((y==a[z].son[0])^(x==a[y].son[0])) rotate(x); 78 else rotate(y); 79 } 80 rotate(x); 81 } 82 up(x); 83 } 84 void access(int x) 85 { 86 int y=0,tmp=x; 87 while (x) {splay(x); a[x].son[1]=y; up(x); y=x; x=a[x].fa;} 88 splay(tmp); 89 } 90 // int findroot(int x) 91 // { 92 // access(x); 93 // int y=x; 94 // while (a[y].son[0]) {down(y); y=a[y].son[0];} 95 // return y; 96 // } 97 void resetroot(int x) 98 { 99 access(x); 100 revsingle(x); 101 } 102 void link(int x,int y) 103 { 104 resetroot(x); 105 a[x].fa=y; 106 a[x].realroot=a[y].realroot; 107 } 108 void cut(int x,int y) 109 { 110 resetroot(x); 111 access(y); 112 a[y].son[0]=a[x].fa=0; 113 up(y); a[x].realroot=x; 114 } 115 int query(int x) 116 { 117 access(x); 118 int y=a[x].realroot; 119 resetroot(y); 120 access(x); 121 return a[a[x].son[0]].size+1; 122 } 123 // void test() 124 // { 125 // for (int i=1;i<=n;i++) cout<<i<<" size"<<a[i].size<<" realroot"<<a[i].realroot<<" rev" 126 // <<a[i].rev<<" son0 "<<a[i].son[0]<<" son1 "<<a[i].son[1]<<" fa "<<a[i].fa<<endl; 127 // cout<<endl; 128 // } 129 }t; 130 131 int num[maxn]; 132 int main() 133 { 134 scanf("%d",&n); 135 for (int i=1;i<=n;i++) t.makeatree(i); 136 for (int i=1;i<=n;i++) 137 { 138 scanf("%d",&num[i]); 139 if (i+num[i]<=n) t.link(i,i+num[i]); 140 } 141 scanf("%d",&m); 142 int x,y,z; 143 while (m--) 144 { 145 scanf("%d%d",&x,&y); y++; 146 if (x==1) printf("%d\n",t.query(y)); 147 else 148 { 149 scanf("%d",&z); 150 if (y+num[y]<=n) t.cut(y,y+num[y]); 151 num[y]=z; 152 if (y+z<=n) t.link(y,y+z); 153 } 154 } 155 return 0; 156 } View Code

?

轉(zhuǎn)載于:https://www.cnblogs.com/Blue233333/p/8289625.html

總結(jié)

以上是生活随笔為你收集整理的BZOJ2002: [Hnoi2010]Bounce 弹飞绵羊的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色片网站在线 | 亚洲涩涩涩 | 国产尻逼视频 | 日韩视频在线观看免费视频 | 国产福利资源在线 | 欧美激情网站 | www国产精品视频 | 国产高清精品一区二区三区 | 色av网| 美女扣逼喷水视频 | 亚洲少妇网 | 手机在线看a | 激情偷乱人成视频在线观看 | 中日韩在线播放 | 禁断介护av | 国产传媒一级片 | 欧美熟妇精品黑人巨大一二三区 | 欧美jizzhd欧美18 | 一区二区三区四区五区在线视频 | 中文字幕一区二区在线老色批影视 | 中文字幕亚洲乱码 | 国产黄色片在线观看 | 自拍偷拍一区二区三区 | 亚洲AV成人无码电影在线观看 | 日韩av在线看 | 精品人妻一区二区三区潮喷在线 | 国产一级片在线 | 婷婷久久久久久 | 久色婷婷| 国产毛片毛片毛片 | 美女扒开大腿让男人桶 | 夜夜爽天天爽 | 午夜啪啪福利 | 日本亚洲高清 | 久久久亚洲国产精品 | 波多野结衣视频观看 | 中国国产精品 | 亚洲美女高潮久久久 | 欧美日韩在线视频免费观看 | 国产一区在线看 | 91在线观看视频 | 国产五月 | 精品免费| 一级全黄裸体片 | 一本亚洲 | 黄色91| 中文字幕一区日韩 | 91视频网址入口 | 欧美大色一区 | 日本丰满大乳奶做爰 | 俄罗斯av片 | 国产成人av无码精品 | av手机在线观看 | xxxxx69| 国产精品性爱在线 | 黄色国产免费 | 好看的av网址 | 亚洲国产精品久久久久爰色欲 | 久久久999精品视频 国产在线xx | 古装做爰无遮挡三级 | 操少妇视频 | 在线播放av网站 | 日韩欧美日韩 | 丰满女人又爽又紧又丰满 | 亚洲 国产 日韩 欧美 | 国产精品一线天 | 亚洲欧洲无码一区二区三区 | 在线观看中文字幕 | 欧美大黑bbbbbbbbb在线 | 久久在线视频免费观看 | 国产高潮流白浆喷水视频 | 97在线视频免费观看 | 久久中文字幕人妻 | 高跟鞋av | 久久观看最新视频 | 午夜蜜桃视频 | 韩国美女视频在线观看18 | 中文亚洲av片在线观看 | 日本美女视频网站 | 无码精品一区二区免费 | 亚洲乱色 | 99热精品国产 | 北条麻妃一区二区三区在线观看 | 美女福利片 | 国产无遮挡免费 | 婷婷久久综合网 | 日韩素人| 日本在线视频不卡 | 国产麻豆剧传媒精品国产 | av激情在线 | 综合激情伊人 | 免费av观看 | 欧美亚洲一二三区 | 成人午夜黄色 | 三级在线观看 | 爱操视频 | 精品久久久久久久久久久国产字幕 | 香蕉视频2020| 隔壁邻居是巨爆乳寡妇 |