并查集
Mint-hexagram
这个作者很懒,什么都没留下…
展开
-
[模板]有向图最小环 & 洛谷P2661 [NOIP2015 提高组] 信息传递
算法要素:并查集的奇妙应用 思路: 并查集求有向图最小环 tips:这道题完全可以拓展成带边权的有向图最小环,原题相当于边权为1. Code #include<bits/stdc++.h> using namespace std; const int maxn=2e5+50; int fa[maxn],dis[maxn]; int n,t[maxn]; int minn=1e9+7; int Find(int x) { if(fa[x]!=x) { int last=fa[x]; f原创 2021-11-12 21:19:47 · 243 阅读 · 0 评论 -
P1955 [NOI2015] 程序自动分析(并查集+离散化)
数据太大,因此肯定要离散化。 考虑把e1的判断先全部放在前面,然后再考虑e0的部分。这么做的正确性是显然的,假设问题成立,则顺序无影响,假设问题不成立,矛盾也不会因为顺序改变而消失。 其实也可以按照原顺序考虑。只不过需要加入一个vis数组,标记每一个值是否被加入过判断条件。 写法如下 for(int i=1;i<=n;++i) { if(c[i]==1) { f(!vis[a[i]] || !vis[b[i]]) { Merge(a[i],b原创 2021-09-24 11:29:46 · 113 阅读 · 0 评论 -
YBTOJ 躲避拥挤
把查询离线会让复杂度变得非常优秀,因为每一条边只被查询一次。 #include<bits/stdc++.h> using namespace std; const int maxn=2e4+50,maxm=1e5+40; int fa[maxn]; long long cnt[maxn]; int n,m,test,q,x; long long tot; struct mint { int u,v,w; }e[maxm]; bool cmp(mint a,mint b) { return a原创 2021-09-24 11:33:56 · 143 阅读 · 0 评论