版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、LCT link-cut-tree 動態(tài)樹模版題合集by yusitongBzoj 2049加邊、刪邊、查詢所在聯(lián)通塊/*Problem: 2049User: yusitongLanguage: C+Result: AcceptedTime:2036 msMemory:988 kb*/#include#include#includeusing namespace std;const int INF=0x7fffffff;const int N = 11000;int n,m;int faN,chN2;bool revN;int staN,top;bool isroot(int x)return
2、 chfax0!=x&chfax1!=x;void down(int x)if(!revx)return;revchx0=1;revchx1=1;swap(chx0,chx1);revx=0;void rotate(int x,int f)int y=fax;if(!isroot(y)chfaychfay1=y=x;fax=fay;if(chxf)fachxf=y;chy!f=chxf;fay=x;chxf=y;void splay(int x)sta+top=x;for(int i=x;!isroot(i);i=fai)sta+top=fai;while(top)down(statop-);
3、while(!isroot(x)if(!isroot(fax)if(chfax1=x)(chfafax1=fax)rotate(x,chfax0=x);else rotate(fax,chfafax0=fax);rotate(x,chfax0=x);void access(int x)int t=0;while(x)splay(x);chx1=t;t=x;x=fax;void makeroot(int x)access(x);splay(x);revx=1;void link(int x,int y)makeroot(x);fax=y;splay(x);void cut(int x,int y
4、)makeroot(x);access(y);splay(y);fax=0;chy0=0;int find(int x)access(x);splay(x);while(chx0)x=chx0;return x;int main()scanf(%d%d,&n,&m);char op10;int x,y;for(int i=1;i=m;i+)scanf(%s%d%d,op,&x,&y);if(op0=C)link(x,y);else if(op0=D)cut(x,y);elseputs(find(x)=find(y)?Yes:No);return 0;Bzoj2002 加邊、刪邊、查詢到根的距離
5、/*Problem: 2002User: yusitongLanguage: C+Result: AcceptedTime:2192 msMemory:5712 kb*/#include#include#includeusing namespace std;const int INF=0x7fffffff;const int N = 201000;int n,m;int faN,chN2,sizeN;bool revN;int nxtN;int staN,top;bool isroot(int x)return chfax0!=x&chfax1!=x;void up(int x)sizex=s
6、izechx0+sizechx1+1;void down(int x)if(!revx)return;revchx0=1;revchx1=1;revx=0;swap(chx0,chx1);void rotate(int x,int f)int y=fax;if(!isroot(y)chfaychfay1=y=x;fax=fay;if(chxf)fachxf=y;chy!f=chxf;fay=x;chxf=y;up(y);void splay(int x)sta+top=x;for(int i=x;!isroot(i);i=fai)sta+top=fai;while(top)down(stato
7、p-);while(!isroot(x)if(!isroot(fax)if(chfax0=x)(chfafax0=fax)rotate(x,chfax0=x);else rotate(fax,chfafax0=fax);rotate(x,chfax0=x);up(x);void access(int x)int t=0;while(x)splay(x);chx1=t;/ up(x);/?t=x;x=fax;void makeroot(int x)access(x);splay(x);revx=1;void link(int x,int y)makeroot(x);fax=y;splay(x);
8、void cut(int x,int y)makeroot(x);access(y);splay(y);fax=0;chy0=0;/up?int main()scanf(%d,&n);for(int i=1,t;i=n;i+) scanf(%d,&t);t=min(i+t,n+1);fai=nxti=t;sizei=1;sizen+1=1;scanf(%d,&m);int op,x,y;for(int i=1;i=m;i+)scanf(%d%d,&op,&x);x+;if(op=1)makeroot(n+1);access(x);splay(x);printf(%dn,sizechx0); e
9、lsescanf(%d,&y);y=min(x+y,n+1);cut(x,nxtx);link(x,y);nxtx=y;return 0;Bzoj 3282加邊、刪邊、單點(diǎn)修改,樹鏈查詢#include#include#includeusing namespace std;const int INF=0x7fffffff;const int N = 301000;int n,m;int faN,chN2,sizeN,valN,xsumN;bool revN;int staN,top;#define rep(i,l,r) for(int i=(l);i9|t=0&t=9)x=x*10+t-0,t
10、=getchar();return x*f;bool isroot(int x)return chfax0!=x&chfax1!=x;void up(int x)int l=chx0,r=chx1;xsumx=xsumlxsumrvalx;sizex=sizel+sizer+1;void down(int x)if(!revx)return;revchx0=1;revchx1=1;revx=0;swap(chx0,chx1);void rotate(int x,int f)int y=fax;if(!isroot(y)chfaychfay1=y=x;fax=fay;if(chxf)fachxf
11、=y;chy!f=chxf;fay=x;chxf=y;up(y);void splay(int x)sta+top=x;for(int i=x;!isroot(i);i=fai)sta+top=fai;while(top)down(statop-);while(!isroot(x)if(!isroot(fax)if(chfax0=x)(chfafax0=fax)rotate(x,chfax0=x);else rotate(fax,chfafax0=fax);rotate(x,chfax0=x);up(x);void access(int x)int t=0;while(x)splay(x);c
12、hx1=t;up(x);t=x;x=fax;void makeroot(int x)access(x);splay(x);revx=1;void split(int x,int y)makeroot(x);access(y);splay(y);void link(int x,int y)makeroot(x);fax=y;void cut(int x,int y)makeroot(x);access(y);splay(y);chy0=0;fax=0;up(y);int find(int x)access(x);splay(x);while(chx0)x=chx0;return x;int main()n=read();m=read();rep(i,1,n)xsumi=vali=read();sizei=1;int op,x,y;rep(i,1,m)op=read();x=read();y=read();if(op=0)split(x,y);printf(%dn,xsumy);else if(op=1)if(find(x)!=find(y)link(x,y);else if(op=2)if(find(x)=find(y)cut(x,y);elsemakeroot(x);xsumx=xsumxvalx
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考物理總復(fù)習(xí)專題八恒定電流實(shí)驗(yàn)九測定電源的電動勢和內(nèi)阻練習(xí)含答案
- 草莓購買合同
- 江蘇地區(qū)高一年級信息技術(shù)一年教案7資源管理器教案
- 江蘇地區(qū)高一年級信息技術(shù)一年教案26 IF語句教案
- 2024年高中政治 第一單元 公民的政治生活 第二課 我國公民的政治參與 3 民主管理:共創(chuàng)幸福生活教案1 新人教版必修2
- 2024-2025學(xué)年新教材高中物理 第七章 萬有引力與宇宙航行 4 宇宙航行(1)教案 新人教版必修2
- 2024-2025學(xué)年新教材高中地理 第3章 天氣的成因與氣候的形成 第2節(jié) 氣壓帶、風(fēng)帶對氣候的影響教案 中圖版選擇性必修第一冊
- 高考地理一輪復(fù)習(xí)第十二章環(huán)境與發(fā)展第二節(jié)中國國家發(fā)展戰(zhàn)略課件
- 寶寶防疫針委托書
- 人教A版廣東省深圳實(shí)驗(yàn)學(xué)校高中部2023-2024學(xué)年高一上學(xué)期第三階段考試數(shù)學(xué)試題
- 形勢與政策24秋-專題測驗(yàn)1-5-國開-參考資料
- 2024年新人教版七年級上冊歷史 第14課 絲綢之路的開通與經(jīng)營西域
- 2024年小學(xué)閩教版全冊英語詞匯表
- 課題開題匯報(bào)(省級課題)
- 清真食品安全管理制度
- 學(xué)校心理健康教育合作協(xié)議書
- 2024江蘇省沿海開發(fā)集團(tuán)限公司招聘23人(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 2024年初級社會體育指導(dǎo)員(游泳)技能鑒定考試題庫(含答案)
- 機(jī)電安裝工程新技術(shù)新工藝應(yīng)用總結(jié)
- 湖北省危險(xiǎn)廢物監(jiān)管物聯(lián)網(wǎng)系統(tǒng)管理計(jì)劃填報(bào)說明
- Unit6ADayintheLife教學(xué)設(shè)計(jì)2024-2025學(xué)年人教版(2024)英語七年級上冊
評論
0/150
提交評論