POJ 2186 Popular Cows Korasaju .
来源:互联网 发布:java md5 32加密算法 编辑:程序博客网 时间:2024/05/17 02:26
题目地址:http://poj.org/problem?id=2186
结论:有向无环图中唯一出度为0的点,一定可以由任何点出发均可达(由于无环,所以从任何点出发往前走,必然终止于一个出度为0的点)
所以就找找出度为0的点有几个就好了
#include<iostream>#include<cstdio>#include<vector>#include<cstring>#include<algorithm>using namespace std;const int maxn=10000+10;bool vis[maxn];int ID[maxn]; int ncolor;vector<int> s;vector<vector<int> > color(maxn); vector<vector<int> > G(maxn);vector<vector<int> > GT(maxn);void dfs(int u){vis[u]=true;for(int i=0;i<G[u].size();i++){int v=G[u][i];if(!vis[v]) dfs(v);}s.push_back(u);}void dfs2(int u){vis[u]=true;ID[u]=ncolor;color[ncolor].push_back(u);for(int i=0;i<GT[u].size();i++){int v=GT[u][i];if(!vis[v]) dfs2(v);}}void Korasaju(int n){memset(vis,false,sizeof(vis));s.clear();for(int i=1;i<=n;i++) if(!vis[i]) dfs(i);memset(vis,false,sizeof(vis));ncolor=0;for(int i=s.size()-1;i>=0;i--) {int j=s[i];if(!vis[j]) ncolor++,dfs2(j);}}int solve(int n) //找出度为0的{int m=0,ans; //m标记出度为0的点有几个 for(int i=1;i<=ncolor;i++){bool ok=true;for(int j=0;j<color[i].size()&&ok;j++){int u=color[i][j];for(int k=0;k<G[u].size()&&ok;k++){int v=G[u][k];if(ID[u]!=ID[v]) //有出度 ok=false; }}if(ok) m++,ans=i;if(m>1) break;}if(m!=1) return 0;else return color[ans].size();} int main(){int n,m;cin>>n>>m;while(m--){int u,v;cin>>u>>v;G[u].push_back(v);GT[v].push_back(u); //转置图 }Korasaju(n);cout<<solve(n);return 0;}
0 0
- POJ 2186 Popular Cows Korasaju .
- poj 2186 Popular Cows(korasaju)
- POJ 2186 Popular Cows(korasaju Algorithm求强连通分量)
- poj 2186 korasaju算法 popular cow
- POJ 2186 Popular Cows
- poj 2186 Popular Cows
- poj 2186 Popular Cows
- poj 2186 Popular Cows
- poj 2186 Popular Cows
- poj 2186 Popular Cows
- POJ 2186 Popular Cows
- poj 2186 Popular Cows
- poj 2186 Popular Cows
- POJ 2186(Popular Cows)
- POJ 2186 Popular Cows
- poj 2186 Popular Cows
- poj 2186 Popular Cows
- POJ 2186 Popular Cows
- 准备在CSDN安家啦。
- Codeforces Problem 707C Pythagorean Triples(数学)
- Codeforces Round #364 (Div. 2) A. Cards
- C基础
- 命令熟悉
- POJ 2186 Popular Cows Korasaju .
- Expedition(优先队列)
- debian sudo自动补全
- 不能打开到主机的连接, 在端口 1521: 连接失败
- 内部排序
- 比特率和波特率的关系
- Debian 8.5设置静态IP
- 菜鸟集中营,关于时间,日期和格式的转化处理
- Codeforces Round #368 (Div. 2) 总结