
并查集
jzq233jzq
这个作者很懒,什么都没留下…
展开
-
并查集——Codeforces744A Hongcow Builds A Nation
题面:cf744a div.1A题。。。难度还算简单吧 首先我们把目前所有连通块全部求出来 然后要求能连的边数最多,我们就把所有连通块连成最大团 不考虑原来边的数量m,每个连通块(最大团)的边数是(点数*(点数-1)/2) 然后考虑没有那个限制点(暂且这么说)的连通块,这些连通块两两可以连边 两两最多可以连的数量是(A的点数*B的点数) 最后考虑有限制点的连通块 因为这些连通块不能连原创 2017-07-06 21:01:02 · 306 阅读 · 0 评论 -
并查集+map——BZOJ4195/Luogu1955 [Noi2015]程序自动分析
题面:BZOJ4195 Luogu1955 由于这个区间范围挺大的,但是点不多,所以考虑离散化 离散化之后呢就直接并查集就好了 等于的直接合并,不等于的判断是否在同一连通块里 要注意的是要所有合并完之后才能判断不等于的情况 离散化用的std::map#include <cstdio> #include <cstring> #include <algorithm> #include <cma原创 2017-06-07 16:16:44 · 284 阅读 · 0 评论 -
差分约束/并查集——BZOJ1202/Luogu2294 [HNOI2005]狡猾的商人
题面:Luogu2294 BZOJ1202 带权并查集直接做 路径压缩的时候把并查集的权值算好,最后判断矛盾是只要前缀减一下就好了 还有一种做法是差分约束,暴力按照题意建边然后spfa判负环即可 luogu实测两者的速度都在130ms左右,差距不大 并查集:原创 2017-06-05 16:02:15 · 278 阅读 · 0 评论 -
主席树——BZOJ3673/BZOJ3674 可持久化并查集(加强版)
http://www.lydsy.com/JudgeOnline/problem.php?id=3674 据说3673因为没有加强版而直接用暴力水掉了? 用主席树可以搞出来一个可持久化数组,然后就可以干很多的事情…… 于是我们可以维护一个可持久化并查集 具体不说了 这里多维护一个深度就好了,其他没啥区别 然后居然没有数据范围?! 然后自己凑一下,大约10^7数组可以过 唉,毒瘤数据结原创 2017-04-05 21:35:08 · 519 阅读 · 0 评论 -
并查集/DFS——BZOJ1529/Luogu3420 [POI2005]SKA-Piggy Banks
http://www.lydsy.com/JudgeOnline/problem.php?id=1529 https://www.luogu.org/problem/show?pid=3420 从POI找到一题比较水的。。。 题目意思其实可以很快的转化成求连通块个数 所以我们可以用灌水或者并查集很快地解决 先贴并查集:#include<bits/stdc++.h> using namesp原创 2017-03-26 19:29:02 · 273 阅读 · 0 评论 -
并查集——BZOJ1015 [JSOI2008]星球大战starwar
http://www.lydsy.com/JudgeOnline/problem.php?id=1015 并查集模板题是不是? 我们可以倒序处理,先计算出所有被攻击的星球消失以后的连通块数目,然后根据倒序分别加回被攻击的星球,这个统计和合并用并查集维护一下就好了 每合并完一次不要忘记把被攻击的星球自己算进去#include<iostream> #include<algorithm> #incl原创 2017-03-13 10:07:41 · 386 阅读 · 1 评论