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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

某天,Lostmonkey發明了一種超級彈力裝置,為了在他的綿羊朋友面前顯擺,他邀請小綿羊一起玩個游戲。游戲一開始,Lostmonkey在地上沿著一條直線擺上n個裝置,每個裝置設定初始彈力系數ki,當綿羊達到第i個裝置時,它會往后彈ki步,達到第i+ki個裝置,若不存在第i+ki個裝置,則綿羊被彈飛。綿羊想知道當它從第i個裝置起步時,被彈幾次后會被彈飛。為了使得游戲更有趣,Lostmonkey可以修改某個彈力裝置的彈力系數,任何時候彈力系數均為正整數。

Input

第一行包含一個整數n,表示地上有n個裝置,裝置的編號從0到n-1,接下來一行有n個正整數,依次為那n個裝置的初始彈力系數。第三行有一個正整數m,接下來m行每行至少有兩個數i、j,若i=1,你要輸出從j出發被彈幾次后被彈飛,若i=2則還會再輸入一個正整數k,表示第j個彈力裝置的系數被修改成k。對于20%的數據n,m<=10000,對于100%的數據n<=200000,m<=100000

Output

對于每個i=1的情況,你都要輸出一個需要的步數,占一行。

Sample Input

4

1 2 1 1

3

1 1

2 1 1

1 1

Sample Output

2

3

Solution

  • 著名的LCT模板題。(這題也可以用分塊做,時間復雜度 O(NN??) )。

  • 設一個根 n+1 ,這樣每個店都能最終連到 n+1

  • 查詢一個點的話,就先取這個點到 n+1 的路徑,直接輸出 size?1 即可。(n+1 不算)

Code

#include<cstdio> #include<algorithm> #include<cctype> using namespace std; const int N=2e5+2; int top; int s[N][2],fa[N],st[N],size[N],next[N]; bool rev[N]; inline int read() {int X=0,w=0; char ch=0;while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();return w?-X:X; } inline void write(int x) {if(x>9) write(x/10);putchar(x%10+'0'); } inline void writeln(int x) {write(x),putchar('\n'); } inline int min(int x,int y) {return x<y?x:y; } inline bool pd(int x) {return s[fa[x]][1]==x; } inline bool isroot(int x) {return s[fa[x]][0]^x && s[fa[x]][1]^x; } inline void update(int x) {size[x]=size[s[x][0]]+size[s[x][1]]+1; } inline void modify(int x) {if(x) rev[x]^=1,swap(s[x][0],s[x][1]); } inline void down(int x) {if(rev[x]){modify(s[x][0]),modify(s[x][1]);rev[x]=false;} } inline void rotate(int x) {int y=fa[x],w=pd(x);if(s[y][w]=s[x][w^1]) fa[s[x][w^1]]=y;if((fa[x]=fa[y]) && !isroot(y)) s[fa[y]][pd(y)]=x;s[fa[y]=x][w^1]=y;update(y); } inline void splay(int x) {for(int y=st[top=1]=x;!isroot(y);y=fa[y]) st[++top]=fa[y];while(top) down(st[top--]);for(int y;!isroot(x);rotate(x))if(!isroot(y=fa[x])) rotate(pd(x)==pd(y)?y:x);update(x); } inline void access(int x) {for(int y=0;x;x=fa[y=x]) splay(x),s[x][1]=y,update(x); } inline void mkroot(int x) {access(x),splay(x),modify(x); } inline void link(int x,int y) {mkroot(x),fa[x]=y; } inline void cut(int x,int y) {mkroot(x),access(y),splay(y);s[y][0]=fa[x]=0; } int main() {int n=read();for(int i=1;i<=n;i++){size[i]=1;fa[i]=next[i]=min(i+read(),n+1);}int m=read();while(m--){int op=read(),x=read()+1;if(op==1){mkroot(n+1),access(x),splay(x);writeln(size[x]-1);}else{int k=read(),t=min(x+k,n+1);cut(x,next[x]);link(x,next[x]=t);}}return 0; }

總結

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

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

主站蜘蛛池模板: 中文字幕 人妻熟女 | 国产午夜一区 | 领导揉我胸亲奶揉下面 | av一区在线 | av免费大片 | 日本囗交做爰视频 | 影音先锋男人站 | aaa黄色片 | 亚洲国产日韩一区二区 | 男人添女人囗交视频 | av一区不卡 | 国产免费一区二区三区免费视频 | 一级性生活免费视频 | 成人理论影院 | 在线视频国产一区 | 免费国产视频 | 天堂√8在线中文 | 91高清无打码 | 久草成人在线视频 | 欧美一区二区在线视频 | 日韩精品一区在线观看 | 永久免费在线播放 | 久久国产小视频 | 欧美在线观看视频 | 青娱乐在线免费视频 | 在线看片你懂的 | 日韩插插 | 女生脱裤子让男生捅 | 天堂影院一区二区 | 91美女高潮出水 | 欧美色图亚洲色 | 亚洲精选中文字幕 | 免费看av在线| 亚洲伦理在线视频 | 国产精品亚洲二区在线观看 | 色吧久久 | 91免费国产视频 | 国产精品无码永久免费不卡 | 久在操| 依人99| 中文字幕av一区二区三区人妻少妇 | 亚洲一区二区三区高清在线 | 国产精品免费无遮挡无码永久视频 | 91久久综合亚洲鲁鲁五月天 | 亚洲av无码电影在线播放 | 一区二区三区天堂 | 色涩久久| 久久99热这里只有精品 | 有码视频在线观看 | 特级一级黄色片 | 91蝌蚪视频在线 | 四色在线 | 色婷五月 | 人人干人人爽 | 国产又大又长又粗 | 一区二区三区视频在线播放 | xx久久| 黄色国产在线视频 | 毛片毛片女人毛片毛片 | 色妞色视频一区二区三区四区 | 性生活视频软件 | 精品久久久久久久免费人妻 | 免费看成人 | 熟女少妇精品一区二区 | 日韩一二区 | 免费视频一区二区 | 金瓶风月在线 | 国产日产亚洲精品 | 人妻巨大乳一二三区 | a在线看| 女人裸体无遮挡 | 国产白丝喷水 | 情涩快播| 狠狠干五月 | 欧美日韩视频无码一区二区三 | 日本三级韩国三级三级a级中文 | 男女叼嘿视频 | 日韩欧美一二三区 | 欧美黄色大片免费观看 | 老司机伊人 | 国产精品久久久午夜夜伦鲁鲁 | 狠狠躁日日躁 | 男女在线免费观看 | 丁香婷婷综合激情 | 四虎影视成人永久免费观看亚洲欧美 | 亚洲一区二区黄 | 国产美女黄网站 | 经典三级av在线 | 男女国产视频 | 亚洲福利视频导航 | 亚洲成人诱惑 | 亚洲你懂的| 老妇荒淫牲艳史 | 自拍视频网址 | 五十路黄色片 | 免费视频www在线观看网站 | 加勒比波多野结衣 | avtt2015 | a免费在线观看 |