3674: 可持久化并查集加强版
2018-06-17 22:05:39来源:未知 阅读 ()
Submit: 3592 Solved: 1337
[Submit][Status][Discuss]
Description
Description:
自从zkysb出了可持久化并查集后……
hzwer:乱写能AC,暴力踩标程
KuribohG:我不路径压缩就过了!
ndsf:暴力就可以轻松虐!
zky:……
n个集合 m个操作
操作:
1 a b 合并a,b所在集合
2 k 回到第k次操作之后的状态(查询算作操作)
3 a b 询问a,b是否属于同一集合,是则输出1否则输出0
请注意本题采用强制在线,所给的a,b,k均经过加密,加密方法为x = x xor lastans,lastans的初始值为0
0<n,m<=2*10^5
Input
Output
Sample Input
1 1 2
3 1 2
2 1
3 0 3
2 1
3 1 2
Sample Output
0
1
HINT
Source
出题人大SB++
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 #include<ext/rope> 7 using namespace std; 8 using namespace __gnu_cxx; 9 const int MAXN=2000050; 10 const int maxn=0x7fffffff; 11 void read(int &n) 12 { 13 char c='+';int x=0;bool flag=0; 14 while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;} 15 while(c>='0'&&c<='9'){x=x*10+(c-48);c=getchar();} 16 flag==1?n=-x:n=x; 17 } 18 19 rope<int> *rp[MAXN]; 20 int a[MAXN]; 21 int n,m,how,x,y,lastans; 22 int find(int i,int x) 23 { 24 if(rp[i]->at(x)==x) return x; 25 int f=find(i,rp[i]->at(x)); 26 if(f==rp[i]->at(x)) return f; 27 rp[i]->replace(x,f); 28 return f; 29 } 30 void merge(int i,int x,int y) 31 { 32 x=find(i,x),y=find(i,y); 33 if(x!=y) rp[i]->replace(y,x); 34 } 35 int main() 36 { 37 int n,m; 38 read(n);read(m); 39 for(int i=1;i<=n;i++) a[i]=i; 40 rp[0]=new rope<int> (a,a+n+1); 41 for(int i=1;i<=m;i++) 42 { 43 rp[i]=new rope<int> (*rp[i-1]); 44 int how;read(how); 45 if(how==1) 46 { 47 read(x);read(y); 48 merge(i,x^lastans,y^lastans); 49 } 50 else if(how==2) 51 { 52 read(x); 53 rp[i]=rp[x^lastans]; 54 } 55 else if(how==3) 56 { 57 read(x);read(y); 58 printf("%d\n",lastans=(find(i,x^lastans)==find(i,y^lastans))); 59 } 60 } 61 return 0; 62 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:08:Challenge 1
- 【图论】几个例题~ 2020-04-14
- 加边的无向图--并查集 2020-04-10
- [题记-并查集] 合根植物 - 蓝桥杯 2020-04-07
- 寒假集训第一天---并查集题解 2020-01-15
- 详解并查集 2019-11-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash