Description n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 0<n,m<=2*10^4 n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k ...
分类:
编程语言 时间:
2017-01-07 01:16:51
阅读次数:
205
http://www.lydsy.com/JudgeOnline/problem.php?id=3674 (题目链接) 题意 维护并查集3个操作:合并;回到完成第k个操作后的状态;查询。 Solution 其实就是用主席树的叶子节点维护并查集的可持久化数组fa[]。 细节 终于认识到了按秩合并的强大 ...
分类:
其他好文 时间:
2016-11-06 22:58:02
阅读次数:
440
线段树只用叶子节点感觉莫名浪费,,, 感觉真好写(刚从未来程序逃回来的人) ...
分类:
编程语言 时间:
2016-10-20 22:07:56
阅读次数:
217
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3674用可持久化线段树维护可持久化数组,加上启发式合并,就成了可持久化并查集。。用root数组来记录当前是第x次操作之后的情景,这样我们就可以返回某次操作之后了。注意一直都是维护点的pos,画个图...
分类:
其他好文 时间:
2015-12-23 15:48:11
阅读次数:
207
本质上是维护两个可持久化数组,用可持久化线段树维护. 1 /************************************************************** 2 Problem: 3673 3 User: idy002 4 Language: C+...
分类:
其他好文 时间:
2015-06-07 15:47:31
阅读次数:
127
http://www.lydsy.com/JudgeOnline/problem.php?id=3674http://www.lydsy.com/JudgeOnline/problem.php?id=3673双倍经验啦啦啦。。给主席树换了个名称果然高大上。。。首先要可持久化并查集其实就是可持久化数组...
分类:
其他好文 时间:
2014-12-08 19:33:19
阅读次数:
260
题目大意:维护一种数据结构实现可持久化并查集。
思路:利用可持久化线段树实现可持久化数组维护可持久化并查集。(不知道3674哪里加强了。。。
CODE:
#include
#include
#include
#include
#define RANGE 8000010
#define MAX 200200
using namespace std;
struct...
分类:
其他好文 时间:
2014-12-03 09:22:29
阅读次数:
170
题目大意:给定n个集合,提供三种操作:
1.合并a,b所在集合
2.回到第k次操作之后的状态
3.询问a,b是否在同一集合
可持久化并查集0.0 实现方式是用可持久化线段树实现可持久化数组维护可持久化并查集。。。
至于可持久化数组,每条路径上只有叶节点的位置的num域是有意义的,感觉无比浪费0.0 可是不这样还真没法维护0.0
合并时本来应该按照每个节点的深度之和维护,结果手残懒得写,...
分类:
其他好文 时间:
2014-10-20 19:30:18
阅读次数:
185
rope教程:http://blog.csdn.net/iamzky/article/details/38348653Code(bzoj3673): 1 #include 2 #include 3 using namespace std; 4 using namespace __gnu_cxx; 5...
分类:
其他好文 时间:
2014-09-06 16:06:03
阅读次数:
329