[USACO5.3]校园网Network of Schools 强连通分量
来源:互联网 发布:天刀公子羽数据 编辑:程序博客网 时间:2024/06/07 02:02
#include <iostream>#include <cstring>using namespace std;const int MAXN = 100+5;int g[MAXN][MAXN], dfn[MAXN], num[MAXN] , a[MAXN][MAXN], n, m, scc, cnt;int rd[MAXN],cd[MAXN];void dfs(int k){ num[k] = 1; for(int i=1; i<=n; i++) if(g[k][i] && !num[i]) dfs(i); dfn[++cnt] = k; }void ndfs(int k){ num[k] = scc; for(int i=1; i<=n; i++) if(g[i][k] && !num[i]) ndfs(i);}void kosaraju(){ int i, j; for(i=1; i<=n; i++) if(!num[i]) dfs(i); memset(num, 0, sizeof num); for(i=n; i>=1; i--) if(!num[dfn[i]]){ scc++; ndfs(dfn[i]); } if(scc==1){cout<<1<<endl<<0<<endl;return;} for(i=1; i<=n; i++) for(j=1; j<=n; j++) if(g[i][j])a[num[i]][num[j]]=1; for(i=1; i<=scc; i++) for(j=1; j<=scc; j++) if(i!=j && a[i][j]){rd[j]++;cd[i]++;}int ans1=0,ans2=0;for(i=1; i<=scc; i++){if(rd[i]==0)ans1++;if(cd[i]==0)ans2++;}cout<<ans1<<endl;if(ans1>ans2)ans2=ans1;cout<<ans2<<endl; }int main(){ int i, j, k; cin>>n; for(i=1;i<=n;i++){while(cin>>k){if(k==0)break;g[i][k]=1;}} kosaraju(); return 0;}
阅读全文
0 0
- [USACO5.3]校园网Network of Schools 强连通分量
- Tarjan强联通分量-洛谷P2746 [USACO5.3]校园网Network of Schools
- 【USACO5.3】校园网Network of Schools tarjan
- P2746 [USACO5.3]校园网Network of Schools
- P2746 [USACO5.3]校园网Network of Schools
- [USACO5.3]校园网Network of Schools
- poj1236-network of schools(强连通分量)
- poj1236 Network of Schools 强连通分量
- POJ1236 Network of Schools 【强连通分量】
- [USACO5.3]校园网Network of Schools Tarjan缩点
- POJ 1236 Network of Schools强连通分量缩点
- POJ 1236 Network of Schools (强连通分量+缩点)
- POJ 1236 Network of Schools 强连通分量+缩点
- poj 1236 Network of Schools (强连通分量+缩点)
- poj 1236 Network of Schools 强连通分量
- poj 1236 Network of Schools(强连通分量+缩点)
- POJ 1236 Network of Schools 强连通分量
- poj 1236--Network of Schools [强连通分量]
- C++ primer 5.4.1节练习
- keras用vgg16预训练的参数训练自己数据集
- 20170517 ASP.NET tips
- Linux(一)
- 用户体验设计5大目标
- [USACO5.3]校园网Network of Schools 强连通分量
- Retrofit上传图片
- 一次失败的hadoop集成eclipse的测试
- 求一个字符串中连续出现次数最多的子串
- java Data、String、Long三种日期类型之间的相互转换
- SELECT-OPTIONS的用法
- 对数据结构一点一小小的理解(七)——二叉树
- js实现下拉选中option移动
- 如何提高编程