最小生成树两连 并查集优化的克鲁斯卡尔算法和优先队列+链式前向星优化的普利姆算法 Kruskal Kruskal是常用的最小生成树算法,算法利用贪心思想,每次选择没用过且不构成环的边的最小边,直到选择了n 1条边,通常我们用并查集这个数据结构去优化,优化后的Kruskal算法复杂度是$O(mlogm ...
分类:
其他好文 时间:
2020-04-07 12:27:31
阅读次数:
86
因为放一个就需要判断一次,每一次跑一遍全图bfs显然是不现实的 又因为点只有三种,黑白无 所以可以用并查集优化 添加一个棋子就判断周围四个的组别情况 注意出现的情况与答案关系之间的判别 1 /* 2 Written By StelaYuri 3 */ 4 #include<stdio.h> 5 #i ...
分类:
其他好文 时间:
2020-01-27 00:14:53
阅读次数:
59
题目链接 题意: 给你n个商品,每个商品都有两个参数 p d ,p为该商品卖出后的利润,d表明该商品只能在这个期限之前卖出,一天只能卖出一件商品。 问你这批商品最多能获得多少利润 题解: 贪心!!! 按照利润从大到小排序,如果利润相同就按照期限从大到小排序,这样才能保证在一定期限内卖更多的商品获得更 ...
分类:
其他好文 时间:
2019-09-30 23:29:18
阅读次数:
83
问题描述 给出一个序列 a1, ..., an。 定义一个区间 [l,r] 是好的,当且仅当这个区间中存在一个 i,使得 ai 恰好等于 al, al+1, ..., ar 1, ar 的最大公因数。 求最长的好的区间的长度。 输入 第一行 n,表示序列的长度; 第二行 n 个数 a1,a2,... ...
分类:
其他好文 时间:
2019-09-21 23:05:34
阅读次数:
121
很多题目均可用并查集优化连边, 跳过一些已经访问过的点 比方说, 对[L,R]范围进行一定更新可以这样写 这样操作过后[L,R]的fa均指向R+1, 下一次会直接跳到R+1, 相当于每个点值只更新一次 例题 1, CF 827A 求构造一个最小字典序的字符串, 其中字符串某些位置的字符固定 #inc ...
分类:
其他好文 时间:
2019-01-04 21:34:23
阅读次数:
225
LCA的Tarjan算法是一个离线算法,复杂度$O(n+q)$。 我们知道Dfs搜索树时会形成一个搜索栈。搜索栈顶节点cur时,对于另外一个节点v,它们的LCA便是v到根节点的路径与搜索栈开始分叉的那个节点lca。而站在cur上枚举v找lca的过程可以用并查集优化到$O(\log n)$级别。 并查 ...
分类:
其他好文 时间:
2018-09-22 18:21:03
阅读次数:
175
好久没写过这么长的代码了,题解东哥讲了那么多,并查集优化还是很厉害的,赶快做做前几天碰到的相似的题。 ...
分类:
其他好文 时间:
2018-09-20 21:14:29
阅读次数:
155
并查集:用数组实现 思路 数组里存的数字代表所属的集合。比如arr[4]==1;代表4是第一组。如果arr[7]==1,代表7也是第一组。既然 arr[4] == arr[7] == 1 ,那么说明4 和 7同属于一个集合, 代码 并查集:借助树形结构 待续.... 并查集优化:路径压缩 待续... ...
分类:
编程语言 时间:
2017-12-11 00:56:42
阅读次数:
209
2017-07-28 17:27:41 writer:pprp 有两种优化方法: 题目:亲戚 代码如下: ...
分类:
其他好文 时间:
2017-07-28 20:55:20
阅读次数:
103
本题和HDU畅通project类似。仅仅只是畅通project给出了数的连通关系, 而此题须要自己推断连通关系,即两个水管能否够连接到一起,也是本题的难点所在。 记录状态。不断combine(),注意仅仅须要推断左方和上方即可,这样不会反复推断,并且肯定都能够遍历到全部的状态。 #include<s ...
分类:
其他好文 时间:
2017-06-09 15:21:26
阅读次数:
168