实际上很早之前林荫是有这个技能的。(废话!要不直接叫小学习好了) 众所周知,并查集可以用来维护一些元素之间相连的关系(不知道的出门右转幼儿园) 而状态压缩可以使得并查集查询一对元素的关系的速度变快(O1) 状态压缩之后的并查集实际上是一个由fa数组(相当于单向链表)构成的菊花图 那么,如何用并查集来 ...
分类:
其他好文 时间:
2019-10-20 01:08:22
阅读次数:
78
[哈夫曼树][1] [2 sat问题][2] [线性代数基础][3] [矩阵和行列式基础][4] [可并堆1][5] [可并堆2][6] [概率与期望概念][7] [Kruskcl重构树1][8] [Kruskcl重构树2][9] [匈牙利算法][10] [带权并查集][11] [C++参考手册][ ...
分类:
其他好文 时间:
2019-10-08 22:26:03
阅读次数:
110
"题目链接" 题目就告诉我们要用并查集了,操作1和3用裸的带权并查集就行了, 操作2相当于将p结点从当前树中删除,再插入到q的树中,直接删除的话比较麻烦,不妨把它的“尸体”留在原来的地方,在q的树中插入一个新的点,维护一个指向编号为p点的指针即可 cpp include include includ ...
分类:
其他好文 时间:
2019-10-07 09:33:41
阅读次数:
56
题目链接 题意: 给出n个农场,然后按时间依次给出m个关于农场相对位置的信息,之后会给出询问,问在t时刻,x到y的曼哈顿距离是多少。 题解: dx【i】维护 根节点到 i 的横坐标距离 dy【i】维护 根节点到 i 的纵坐标距离 并查集高效的地方就在于在使用Find(x)函数查找x的父结点的时候会把 ...
分类:
Web程序 时间:
2019-10-01 16:19:01
阅读次数:
115
题目链接 题意: 你一个字符串,由0和1组成,并且告诉你子串里面1的个数,假设前面的话都是对的,问你到哪一句和前面的话矛盾。 题解: 首先,发现n很大,但是问题数m不多,所以先离散化 d数组表示序列S的前缀和d[l~r]有偶数个1,等价于d[l-1]与d[r]奇偶性相同。 d[l~r]有奇数个1,等 ...
分类:
其他好文 时间:
2019-10-01 16:06:47
阅读次数:
125
题目链接 题意: 石头剪刀布,有一个人时裁判,给你一系列情况,让你判断裁判的情况: 有一个裁判 player x can be determined to be the judge after y lines 没有裁判,谁是裁判都不成立 Impossible 有多个裁判 Can not determ ...
分类:
其他好文 时间:
2019-10-01 12:15:26
阅读次数:
113
奇偶游戏 原题链接: "奇偶游戏" 题目大意 给你N个区间,每个区间给你它含1的奇偶性,问你哪些询问逻辑上冲突 题目题解 一道带权并查集的题,让我对带权并查集有了更深入的理解,带权并查集可以分为两种(在这道题中) “边带权”并查集 “扩展域”并查集 两种方法都是思维上的不同所造成的,其中第一种解法是 ...
分类:
其他好文 时间:
2019-09-24 10:34:09
阅读次数:
69
Parity game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15492 Accepted: 5876 Description Now and then you play the following game with ...
分类:
其他好文 时间:
2019-08-24 11:38:23
阅读次数:
126
主要函数: 路径压缩之递归优化:(使用递归优化可以遍历到每一个节点,在进行回溯的时候我们可以对子节点与父节点的关系进行处理,在解决带权并查集时常用到) 但是当数据量过大时,就不能用了,会MLE错误 路径压缩非递归 ...
分类:
其他好文 时间:
2019-08-06 00:44:08
阅读次数:
131
题意: 长度为$n$的序列,给出$m$个问题,表示为a,b区间和为v,但有可能跟前面的冲突,计算冲突的数量(冲突后的问题不再更新序列) 思路: 带权并查集,权表示当前点到父亲的区间和,对于每个$a,b,v$都有: 当a,b父亲不同:对齐进行合并 对于a,b父亲相同时:判断是否合法 cpp inclu ...
分类:
其他好文 时间:
2019-08-02 16:53:01
阅读次数:
108