并查集
一些水题
lamentropetion
---
展开
-
【离线/并查集】CF1213 G
心血来潮写一下这个*1800的题解,思路一下就出了,但是一开始多了个log被卡了,提醒一下自己。问题是点对的贡献怎么算,很显然可以拆,对于一个连通块,贡献为sz * (sz - 1)这样子 T7了,但是枚举权值就没问题,不知道为什么这样会快,可能是STL的问题....离线的写法还是有讲究的,最好是把答案全部求出来再去O(1)查询,不然容易被卡。排序之后枚举边的权值,就是把边一条条加上去,相当于Kruskal的过程了。之前是 x * (x - 1) / 2,y * (y - 1) / 2。原创 2023-10-20 00:23:29 · 236 阅读 · 0 评论 -
【并查集+贪心】CF Edu152 D
首先观察样例可知,我们可以把连续的非0序列看作一个连通块,次数能够最少是因为同一个连通块的可以一次性染色。如果有2,那么连通块两端可以和0结合,如果没有2,可以选其中一端和0结合。贪心地从有2的连通块开始染色,再从普通连通块染色,然后剩下的的单独染即可。因为维护了左边第一个0和右边第一个0,注意要判一下边界。又观察到,一个连通块,有2和没2也是不一样的。原创 2023-09-01 21:27:05 · 205 阅读 · 0 评论 -
【sorting+并查集】代码源每日一题div2 psort
这道题中,用并查集染色,建完图之后,只需要去判一个连通块里的元素是不是恰好是那几个不同位置的元素即可。固定距离交换元素,用并查集即可。原创 2023-06-15 17:23:34 · 46 阅读 · 0 评论 -
【离线+抽象并查集】代码源每日一题div1 数字替换
注意到,如果直接模拟,复杂度高的原因是,操作2会重新遍历所有数,然后修改,从而变成n^2。如果倒着做,那就变成了,先把数字替换,再去插到左边,然后倒序输出就可以了。那么,如何替换数字呢,用并查集维护。所以,离线是为了避免这种情况。这样,我们就解决了复杂度问题。原创 2023-06-11 20:29:23 · 58 阅读 · 0 评论 -
【抽象并查集】CF1383A
事实上对于下面这个例子来说,a->b,b->c就不需要走a->c这条边了,因此步数减少了。本质上是去分析为什么经过操作之后步数会减少。这居然是用并查集写,这谁能想到呀。原创 2023-05-27 19:40:23 · 70 阅读 · 0 评论 -
【MST+枚举+组合数学】ABC214 D - Sum of Maximum Weights
因为N^2枚举两个结点一定会超时,因此考虑改变枚举对象,我们去枚举边,然后对于每条边都去计算贡献。对于每一条边,当它作为最大边时,贡献就应该加上该边一段结点个数*另一端结点个数。这个非常经典,在今天刚做的某一道题中也碰到过了。就是去考虑Kruskal的过程就好了。那么,怎么让它作为最大边呢?边Kruskal边计算贡献。原创 2023-05-01 21:26:16 · 74 阅读 · 0 评论 -
篮球杯【并查集】发现环
DFS+并查集原创 2023-03-12 23:30:54 · 226 阅读 · 0 评论 -
【Acwing】并查集 1250. 格子游戏
并查集原创 2022-12-16 22:12:30 · 239 阅读 · 0 评论 -
代码源每日一题div1 并查集 区间和
并查集原创 2022-11-25 22:47:01 · 577 阅读 · 0 评论 -
【Acwing】并查集 237. 程序自动分析
并查集原创 2022-11-14 00:28:35 · 79 阅读 · 0 评论 -
【Acwing并查集】238. 银河英雄传说
并查集原创 2022-11-12 14:49:48 · 555 阅读 · 0 评论 -
【模型】大根堆动态维护集合第k小
优先队列原创 2022-10-15 10:48:57 · 133 阅读 · 0 评论 -
【种类并查集】洛谷P1525 [NOIP2010 提高组] 关押罪犯
菜原创 2022-08-29 18:59:45 · 268 阅读 · 0 评论 -
洛谷P2078 朋友
菜原创 2022-08-29 00:02:25 · 134 阅读 · 0 评论 -
2021秋季算法入门班第五章习题:优先队列、并查集 1027 [NOIP2017]奶酪
并查集模板题原创 2022-08-21 20:31:56 · 112 阅读 · 0 评论