优美的数据结构——并查集.不只是判断是否属于同一集合,还能高效的判断两者之间的复杂关系 ...
分类:
其他好文 时间:
2017-05-31 16:32:16
阅读次数:
242
题目链接:点击打开链接 题目大意:有n个人。各自管理不同的人,问有多少人管理k个人。 思路:先记录每一个人的直接上级。然后模拟路径压缩的过程进行计数求和。 #include<stdio.h> #include<string.h> int p[105],sum[105]; void init() { ...
分类:
其他好文 时间:
2017-05-30 15:46:01
阅读次数:
183
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4690 【题解】 带权并查集 fa[x]表示x的父亲,a[x]表示x到x的父亲多/少多少 那么找祖先的时候算一下到祖先多少,然后路径压缩。 合并的时候注意让fa[fx]=fy的时候,a[fx]是 ...
分类:
其他好文 时间:
2017-05-26 23:35:51
阅读次数:
262
链接......不知道为啥放不动啊。 第一次用手机写bzoj的题,也是第一次用手机写的题解,顺便实现了一下手机上的对拍。 可以用链表+并查集维护一下什么的。 环之间的边是不是不太好路径压缩? 我是直接环内路径压缩,环外不管。 这样应该是会被卡的(d==n???) 可是交上去还是过了。 #includ ...
分类:
其他好文 时间:
2017-05-19 13:28:51
阅读次数:
192
http://www.lydsy.com/JudgeOnline/problem.php?id=3674 3674: 可持久化并查集加强版 Description Description:自从zkysb出了可持久化并查集后……hzwer:乱写能AC,暴力踩标程KuribohG:我不路径压缩就过了!n ...
分类:
其他好文 时间:
2017-05-16 23:22:20
阅读次数:
266
一道比最基础的并查集有优化的题; l 并查集的优化 1、Find_Set(x)时 路径压缩 寻找祖先时我们一般採用递归查找,可是当元素非常多亦或是整棵树变为一条链时,每次Find_Set(x)都是O(n)的复杂度,有没有办法减小这个复杂度呢? 答案是肯定的,这就是路径压缩,即当我们经过"递推"找到祖 ...
分类:
其他好文 时间:
2017-05-16 14:44:43
阅读次数:
153
最小生成树 1.是一棵树 无回路 |V|个顶点一定有|V|-1条边 2.是生成树 包含全部顶点 |V|-1条边都在图里 3.边的权重和最小 最小生成树存在<->图连通 贪心算法 贪:每一步都是最好的 好:权重最小的边 约束:只能用图里的边、正好用掉|V|-1条边、不能有回路 Prim算法—让一颗小树 ...
分类:
其他好文 时间:
2017-05-15 18:34:06
阅读次数:
214
路径压缩 前面的并查集的复杂度实际上有些极端情况会很慢。比如树的结构正好是一条链,那么最坏情况下,每次查询的复杂度达到了 O(n)。 路径压缩 的思想是,我们只关心每个结点的父结点,而并不太关心树的真正的结构。 这样我们在一次查询的时候,可以把查询路径上的所有结点的 father[i] 都赋值成为根 ...
分类:
其他好文 时间:
2017-05-01 00:27:21
阅读次数:
391
拿HDU 1232举例。 题解: 首先在地图上给你若干个城镇。这些城镇都能够看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比方任意给你两个点,让你推断它们是否连通,或者问你整幅图一共同拥有几个连通分支,也就是被分成了几个互相独立的块。像畅通project这题, ...
分类:
其他好文 时间:
2017-04-28 16:09:18
阅读次数:
594