随笔分类 - 并查集
摘要:算法要素:并查集的奇妙应用 思路: 并查集求有向图最小环 tips:这道题完全可以拓展成带边权的有向图最小环,原题相当于边权为1. Code #include<bits/stdc++.h> using namespace std; const int maxn=2e5+50; int fa[maxn
阅读全文
摘要:数据太大,因此肯定要离散化。 考虑把e1的判断先全部放在前面,然后再考虑e0的部分。这么做的正确性是显然的,假设问题成立,则顺序无影响,假设问题不成立,矛盾也不会因为顺序改变而消失。 其实也可以按照原顺序考虑。只不过需要加入一个vis数组,标记每一个值是否被加入过判断条件。 写法如下 for(int
阅读全文
摘要:####题面 ###分析: (1)先考虑暴力:直接每次在数组上暴力修改,复杂度O(n^2)级,估计也就30分 (2)这题属于区间修改和区间查询,可以考虑线段树,初始值全赋成1,修改操作就是将{l,r}之间的数-1,每次查询{1,n}的区间和就是剩余的黑色点数。不过线段树复杂度不够优秀,而且常数巨大,
阅读全文
摘要:把查询离线会让复杂度变得非常优秀,因为每一条边只被查询一次。 #include<bits/stdc++.h> using namespace std; const int maxn=2e4+50,maxm=1e5+40; int fa[maxn]; long long cnt[maxn]; int
阅读全文

浙公网安备 33010602011771号