可持久化并查集
时间限制:1秒 内存限制:256M
【题目描述】
\(n\) 个集合,分别是 {0}、{1}、…、{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。
【输入格式】
第一行为整数 \(n,m\),接下来的 \(m\) 行,每行一个操作命令,正如题目中所说,\(a,b,k\) 都是经过加密的。
【输出格式】
输出操作3 的结果
【输入输出样例】
Input
5 6
1 1 2
3 1 2
2 1
3 0 3
2 1
3 1 2
Output
1
0
1
【数据限制】
对于 \(100\%\) 的数据,\(0<n,m≤2*10^5\)
【来源】
Mr.he**