随笔分类 - 并查集
摘要:首先,单点修改求区间和可以用树状数组实现 因为开平方很耗时间,所以在这个方面可以优化 我们知道,开平方开几次之后数字就会等于1 所以,用数组记录下一个应该开的数,每次直接跳到下一个不是1的数字进行开平方,至于这个数组,可以用并查集维护。
阅读全文
摘要:若Y小于等于sqrt(300000),暴力,对所有的插入的数都更新mn[i]。 若Y大于sqrt(300000),枚举kY,用并查集维护>=i的第一个数,这样只支持删除操作是O(1),然后倒着枚举一边,删除一个数x那么就fa[x]=fa[x+1]
阅读全文
摘要:给定一个无向图,求联通块个数,以及k次每次摧毁一个点后的联通块个数 将边和摧毁的点全记录下来,反着做即可 注意被摧毁的点不能算作联通块 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #includ
阅读全文
摘要:题目大意:要求把n个点分成m块,使得每一块之间的距离的最小值最大 n^2枚举所有点之间距离 然后sort一下 并查集维护连通关系 一开始e[]开MAXN然后WA了测了4ms,然后开MAXN<<2又WA不过测了24ms,再开MAXN<<5又WA测了68ms ,又开MAXN<<10 TLE了= =,最后
阅读全文
摘要:二分答案 验证有一种贪心的思想,就是如果这条路的c1比二分的值还小,那就要果断选择一级公路。 搜过一遍后,如果可供选择的一级公路小于k,就可以直接返回否了。 接下来继续选择,如果可以选到n-1条路,就可以,否则就不可以。 选择道路时,选择的一定是不在一个集合里及不连通的,要用并查集优化。 #incl
阅读全文

浙公网安备 33010602011771号