随笔分类 -  并查集

摘要:[link](https://codeforces.com/contest/1851) #### A 非常简单的比较大小问题 ```cpp #include #include #include #include #include #include #include #include #include 阅读全文
posted @ 2023-07-28 18:02 Simex 阅读(21) 评论(0) 推荐(0) 编辑
摘要:Aimee "Doctor,你这水平下降的有点。。。" '"我怎么知道能手残写了个return p" 很显然,那条路径一定在最大生成树上,然后在这条树上跑LCA即可 #include<iostream> #include<cstdio> #include<algorithm> #include<cs 阅读全文
posted @ 2021-05-30 20:06 Simex 阅读(44) 评论(0) 推荐(0) 编辑
摘要:Aimee 做了一下午期望dp 终于一遍过zi 转移的方式很好想 但是瞬移怎么解决,既然瞬移是直接到头的话,并且保证出发点不相同 的话,那么并查集完成瞬移操作 #include<iostream> #include<cstdio> #include<algorithm> #include<cstri 阅读全文
posted @ 2021-01-31 19:19 Simex 阅读(50) 评论(0) 推荐(0) 编辑
摘要:Miku 一眼就看出来是个二分答案 二分最大边的权值 然后显然这种题是不需要考虑花了多少钱的,那么对于每一个mid 就先把所有范围内1级边全键了,然后再把剩下的二级边全键了,看一下能不能跑出来一个生成树 就行了 //二分解决最大的最小 #include<iostream> #include<algo 阅读全文
posted @ 2020-08-11 09:23 Simex 阅读(110) 评论(0) 推荐(0) 编辑
摘要:Miku 说出来你们可能不信,这题卡了我一小时 因为没写路径压缩但是我以为我写了+写快读忘了处理负数 哭了 思路就是把所有联通的球放到一个并查集里,然后只要有上下表面的球联通了,就有了答案 #include<iostream> #include<cstdio> #include<algorithm> 阅读全文
posted @ 2020-08-08 18:20 Simex 阅读(80) 评论(0) 推荐(0) 编辑
摘要:Miku 显然思路是倒着扫,倒着染。 然而这样有一个问题,这样做,那么对于已经染色的区间是不需要重新染色的, 但是遍历的时候可以找到已染色区间的一个端点,另一个在哪? 用并查集解决 fa[x]为x右边第一个没染色的端点 然后就O(N)解决了 提示:n+1个点也要初始化,因为只要n点被染色,那么一定指 阅读全文
posted @ 2020-08-02 22:25 Simex 阅读(92) 评论(0) 推荐(0) 编辑
摘要:链接:P2024 建三个并查集空间太大了,应该写加权并查集 这道题的关系是个环,转过来转过去的。我们的权值就定义成这个点与父节点的关系(0=同类,1=吃 2=被吃) 这样做,我们就要在find时如果搞路径压缩,就要麻烦一点,因为我们要把他与父节点的关系更新成与 祖先节点的关系。 非常易证得,关系就是 阅读全文
posted @ 2019-08-26 18:05 Simex 阅读(212) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示