bzoj2049 [ SDOI2008 ] -- LCT
来源:互联网 发布:淘宝购买家具退货 编辑:程序博客网 时间:2024/05/29 19:44
只有cut和link操作的LCTbzoj2049
代码:
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 #define N 10010 6 int i,j,k,x,y,n,m,f[N],ch[N][2]; 7 bool r[N],b[N]; 8 char c[30]; 9 inline void Update(int x){10 if(x==0)return;11 swap(ch[x][0],ch[x][1]);12 r[x]^=1;13 }14 inline void Pushdown(int x){15 if(r[x]){16 Update(ch[x][0]);17 Update(ch[x][1]);18 r[x]=0;19 }20 }21 inline int Get(int x){return ch[f[x]][1]==x;}22 inline void Rotate(int x){23 bool d=Get(x);int y=f[x];24 if(b[y])b[x]=1,b[y]=0;else ch[f[y]][Get(y)]=x;25 ch[y][d]=ch[x][d^1];f[ch[y][d]]=y;26 f[x]=f[y];ch[x][d^1]=y;f[y]=x;27 }28 inline void P(int x){29 if(!b[x])P(f[x]);30 Pushdown(x);31 }32 inline void Splay(int x){33 P(x);34 for(;!b[x];Rotate(x))35 if(!b[f[x]])Rotate(Get(x)==Get(f[x])?f[x]:x);36 }37 inline void Access(int x){38 int y=0;39 while(x){40 Splay(x);41 b[ch[x][1]]=1;ch[x][1]=y;b[y]=0;42 y=x;x=f[x];43 }44 }45 inline void mr(int x){Access(x);Splay(x);Update(x);}46 inline int Find(int x){47 while(f[x])x=f[x];48 return x;49 }50 inline void Link(int x,int y){51 if(Find(x)==Find(y))return;52 mr(x);f[x]=y;53 }54 inline void Cut(int x,int y){55 mr(x);Access(y);Splay(y);56 f[ch[y][0]]=0;b[ch[y][0]]=1;ch[y][0]=0;57 }58 int main()59 {60 scanf("%d%d",&n,&m);61 for(i=1;i<=n;i++)b[i]=1;62 while(m--){63 scanf("%s%d%d",c,&x,&y);64 if(c[0]=='C')Link(x,y);else65 if(c[0]=='Q')if(Find(x)==Find(y))puts("Yes");else puts("No");else Cut(x,y);66 }67 return 0;68 }
阅读全文
0 0
- bzoj2049 [ SDOI2008 ] -- LCT
- 【bzoj2049】【SDOI2008】【洞穴勘测】【lct】
- bzoj2049: [Sdoi2008]Cave 洞穴勘测 LCT
- 【LCT】BZOJ2049[Sdoi2008]Cave 洞穴勘测
- [BZOJ2049][SDOI2008]Cave 洞穴勘测(LCT)
- [BZOJ2049][[Sdoi2008]Cave 洞穴勘测][LCT]
- LCT裸题-[BZOJ2049][Sdoi2008]Cave 洞穴勘测
- bzoj2049: [Sdoi2008]Cave 洞穴勘测(lct)
- bzoj2049 [Sdoi2008]Cave 洞穴勘测 [LCT]
- [BZOJ2049]SDOI2008洞穴勘测|LCT|并查集
- 【BZOJ2049】洞穴勘测(SDOI2008)-LCT真·模板题
- LCT——BZOJ2049/Luogu2147 [SDOI2008]Cave 洞穴勘测
- [BZOJ2049][SDOI2008]洞穴勘测(动态树LCT)
- bzoj2049 LCT
- BZOJ2049 LCT
- 【BZOJ2049】【SDOI2008】Cave 洞穴勘测 LCT裸题 模版题 数组版
- [BZOJ2049] [SDOI2008] 洞穴勘测
- 【SDOI2008】bzoj2049 洞穴勘测
- 架构师学长分享
- 3.写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
- bzoj2733 [ HNOI2012 ] -- 并查集+线段树合并
- bzoj2002 [ HNOI2010 ] -- LCT
- bzoj [ 2017省队十连测推广赛1 ] ( 4765 && 4766 && 4767 )题解
- bzoj2049 [ SDOI2008 ] -- LCT
- bzoj2843 -- LCT
- 设置图片圆角加阴影效果
- flex布局(3)
- 51Nod 1228 -- 伯努利数
- bzoj4771 -- dfs序+倍增+主席树
- error MSB600: “cmd.exe”已退出 代码为3
- UnityAI行为------群组行为
- ZJOI2011 Day1 ( bzoj2227~2229 ) 题解