poj2186 Popular Cows
来源:互联网 发布:中国银行安全控件mac 编辑:程序博客网 时间:2024/05/17 15:05
#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <stack>using namespace std;struct node{ int s,e;}arr[50010];vector<int> mat[10020];vector<int> tmat[10020];int n,m;int vis[15000];int mark[15000];int cnt[15000];int du[15000];stack<int >q;int num=0;void dfs(int start){ vis[start]=1; for(int i=0;i<mat[start].size();i++) { if(!vis[mat[start][i]]) { dfs(mat[start][i]); } } q.push(start); return;}void dfsop(int start){ vis[start]=1; mark[start]=num; cnt[num]++; for(int i=0;i<tmat[start].size();i++) { if(!vis[tmat[start][i]]) { dfsop(tmat[start][i]); } }}int main(){ cin>>n>>m; node c; //int cnt=0; for(int i=1;i<=m;i++) { int s,e; cin>>s>>e; mat[s].push_back(e); tmat[e].push_back(s); c.s=s; c.e=e; arr[i]=c; } for(int i=1;i<=n;i++) { if(!vis[i]) { dfs(i); } } memset(vis,0,sizeof(vis)); while(!q.empty()) { if(vis[q.top()]) {q.pop();continue;} ++num; dfsop(q.top()); q.pop(); } for(int i=1;i<=m;i++) { int s=arr[i].s,e=arr[i].e; if(mark[s]!=mark[e]) { du[mark[s]]++; } } // int judge=1; //for(int i=1;i<=n;i++) cout<<mark[i]<<' '; //cout<<endl; //for(int i=1;i<=n;i++) cout<<du[i]<<' '; //cout<<endl; int sum=0; int ppp=0; for(int j=num;j>=1;j--) { if(du[j]==0) sum++; } for(int j=num;j>=1;j--) { if(du[j]==0) ppp=j; } if(sum==1) cout<<cnt[ppp]<<endl; else cout<<0<<endl; return 0;}
0 0
- poj2186 Popular Cows
- poj2186 Popular Cows
- POJ2186 Popular Cows
- poj2186 - Popular Cows
- POJ2186--Popular Cows
- POJ2186 Popular Cows (Tarjan)
- [BZOJ1051/POJ2186]Popular Cows
- [POJ2186]Popular Cows
- POJ2186 Popular Cows
- poj2186 Popular Cows
- poj2186 Popular Cows (Tarjan)
- poj2186 Popular Cows
- poj2186 popular cows
- Poj2186 Popular Cows
- poj2186 Popular Cows
- 【poj2186】 Popular Cows
- poj2186 Popular Cows
- poj2186 Popular cows
- 简述操作系统中的作业、进程、线程、管程
- 使用Github+Jekyll制作自己的博客
- 面向对象六大原则
- hdu 1950
- private static final long serialVersionUID = 1L 干什么的?
- poj2186 Popular Cows
- Java访问控制
- Html-列表基础记录
- 使用AmazeUI做的一个表单案例(验证)
- 进程间通信如何实现
- 个人感想
- 信号量与PV操作
- python读取raw binary图片并提取统计信息
- C语言实现在控制台同一行覆盖刷新输出,以及'\b'退格控制字符的使用