【P2661】信息传递【并查集】查找最小环
2018-01-14 18:17
351 查看
/* 信息传递 P2661 有向图最小环 algorithm:并查集 by sbn 2018-1-14 */ #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<string> #include<cmath> #include<algorithm> using namespace std; const int MAXN=2e6+10; int fa[MAXN],dis[MAXN],n,res=2e6; int getfa(int x){ if (fa[x]!=x){ int last=fa[x]; fa[x]=getfa(fa[x]); dis[x]+=dis[last]; } return fa[x]; } void link(int a,int b){ int x=getfa(a),y=getfa(b); if (x!=y){ fa[x]=y; dis[a]=dis[b]+1; }else res=min(res,dis[a]+dis[b]+1); return; } int main(){ cin>>n; for (int i=1;i<=n;i++) fa[i]=i; for (int i=1;i<=n;i++){ int f; cin>>f; link(i,f); } cout<<res<<endl; return 0; }
相关文章推荐
- 洛谷P2661 信息传递(带权并查集求有向图最小环)
- noip信息传递(并查集判环)
- [并查集]NOIP 2015 Day1 信息传递
- P2661 信息传递
- P2661 信息传递 强连通分量
- P2661 信息传递
- P2661 信息传递
- 【 NOIP2015 DAY1 T2 信息传递】带权并查集
- 【NOIP2015day1T2】【codevs4511】信息传递,最小环
- 洛谷 P2661 信息传递
- Noip 2015 D1T2 信息传递(求最小环,dfs+时间戳)
- P2661 信息传递 TODO-TARJAN算法
- 2015 提高组 信息传递--tarjan找最小环
- SSL2505 2015年NOIP提高组试题 信息传递(并查集,最小环)
- AC日记——信息传递 洛谷 P2661 (tarjan求环)
- noip2015D1T1 信息传递(并查集判环)
- P2661 信息传递
- 洛谷 [P2661] 信息传递
- 信息传递 trajian找最小环
- 洛谷 P2661信息传递