随笔分类 - 并查集
摘要:题目链接 先从小到大去排个序 想着记录每行每列当前最大值,然后就取两者最大值+1就行了 但是相同的数字因为行列不一,条件也不一样苛刻,所以要是能修改的时候把所有相同的数字也修改就好了 所以并查集,只关心根节点的值就好了 这里想漏了一点,并不是所有相同的数字都要相同,因为他们其实互不管辖,除了同行同列
阅读全文
摘要:题目链接 一开始想种类并查集 但是$a\neq b ,a\neq c$不能推出$b=c$ 也就是不具有敌人的敌人是朋友的性质 等于和不等于可以分开处理 先处理等于,并查集维护 再处理不等于,如果在一个集合就是NO #include <iostream> #include <algorithm> #i
阅读全文
摘要:题目链接 感觉排个序会非常好做,就能省了很多事 但是询问是不讲顺序的,那就离线一下 #include <iostream> #include <algorithm> using namespace std; #define MAXN 100005 int f[MAXN],size[MAXN]; in
阅读全文
摘要:"传送门" 看到联通块,好像跟并查集、强连通分量有关系吧,仔细一看跟哪些点属于哪些块没关系,只关心联通块数量,那么应该可以用并查集做。继续看,这是一道删边的题,好像很难维护删边,我们又知道并查集是可以维护加边的,那么我们就倒过来做好了。
阅读全文

浙公网安备 33010602011771号