文章分类 -  数据结构——带权并查集

摘要:(小声bb 我觉得带权并查集比较玄妙) 传送门QAQ 很容易想到用并查集来维护 设size表示当前队列的数量(以i为队头的数量),to_root表示当前节点到祖宗的距离 则对于每一个飞船,它到队头的距离,就等于它到它祖先的距离加上它祖先到队头的距离,而它的祖先到队头的距离,也可以变成类似的。可以在g 阅读全文
posted @ 2018-10-08 23:02 Patrickpwq 阅读(220) 评论(0) 推荐(0)
摘要:"传送门" 一开始没在意数据范围...就用一个5行的dfs瞎做,搞了80分。 正解是带权并查集,只需要维护一下到根节点的距离就可以了。。。。 cpp include define N 200005 using namespace std; int n,father[N],to_root[N],ans 阅读全文
posted @ 2018-08-09 22:33 Patrickpwq 阅读(119) 评论(0) 推荐(0)
摘要:"传送门" Solution: 并查集,维护种类。 father维护可追溯的根节点,num维护与根节点的关系,我们定义0表示x与根节点同类,1表示x吃根节点,2表示根节点吃x。 当getfather(X)==(Y) 若D==1,而num[X]!=num[Y], 则此话为假。(D==1 表示X与Y为同 阅读全文
posted @ 2018-07-31 12:06 Patrickpwq 阅读(144) 评论(0) 推荐(0)
摘要:[传送门][1] 题意:给出区间[1,n],下面有m组数据。l r,v区间[l,r]之和为v,每输入一组数据,判断此组条件是否与前面冲突 ,如果此条件冲突,则忽视它,最后输出与前面冲突的数据的个数. Solution: 带权并查集维护区间。 可以这么考虑,当几个区间能够拼起来的时,比如[1,3],[ 阅读全文
posted @ 2018-07-29 16:14 Patrickpwq 阅读(91) 评论(0) 推荐(0)
摘要:[传送门][1] [1]: http://poj.org/problem?id=1988 题意:现在有n个立方体,n个坑。有p种操作,分为M与C。对于M操作:给出x,y,需要把x立方体所在的坑里的立方体全部搬到y立方体所在的坑上。对于C操作,给出x,需要输出x立方体下面的立方体个数。 Solutio 阅读全文
posted @ 2018-07-29 11:46 Patrickpwq 阅读(96) 评论(0) 推荐(0)
摘要:[ 传送门 ][1] [1]: http://acm.hdu.edu.cn/showproblem.php?pid=3635 题目大意:有n个龙蛋,分别坐落在n个城市。现在有m个操作。操作分为T,Q。对于T:给出x,y,把x所在的城市中的蛋全部移到y所在城市去。对于Q:给出x,我们需要输出x所在的城 阅读全文
posted @ 2018-07-29 11:28 Patrickpwq 阅读(82) 评论(0) 推荐(0)