poj2186Popular Cows
来源:互联网 发布:av小次郎 最新域名 编辑:程序博客网 时间:2024/04/26 18:56
牛群里的牛相互崇拜,这种崇拜是单向可传递的,要求最受崇拜的牛有几个,最受崇拜的牛是受其余所有牛的崇拜
用tarjan算法
完全抄袭的模板,写出来了还是各种转不出来
#include<stdio.h>#include<vector>#include<stack>#include<string.h>using namespace std;int n,m;vector<int> vec[100005];int vis[100005];int dfn[100005],low[100005];int gro_id[100000],gro[100005];stack<int> sta;int now,id;void tarjan(int s){ vis[s]=2; now++; dfn[s]=low[s]=now; sta.push(s); for(int i=0; i<vec[s].size(); i++) { if(vis[vec[s][i]]==0) { tarjan(vec[s][i]); low[s]=low[s]<low[vec[s][i]]?low[s]:low[vec[s][i]]; } else if(vis[vec[s][i]]==2) { low[s]=low[s]<dfn[vec[s][i]]?low[s]:dfn[vec[s][i]]; } } if(dfn[s]==low[s]) { id++; while(1) { int t=sta.top(); gro_id[t]=id; vis[t]=1; sta.pop(); gro[id]++; if(t==s) break; } }}int main(){ now=id=0; memset(vis,0,sizeof(vis)); memset(dfn,0,sizeof(dfn)); memset(low,0,sizeof(low)); scanf("%d%d",&n,&m); for(int i=1; i<=n; i++) vec[i].clear(); for(int i=0; i<m; i++) { int a,b; scanf("%d%d",&a,&b); vec[a].push_back(b); } for(int i=1; i<=n; i++) if(!vis[i]) tarjan(i); memset(vis,0,sizeof(vis)); for(int i=1; i<=n; i++) for(int j=0; j<vec[i].size(); j++) if(gro_id[i]!=gro_id[vec[i][j]]) { vis[gro_id[i]]=1; break; } vector<int> ans; for(int i=1; i<=id; i++) if(vis[i]==0) ans.push_back(i); //printf("%d\n",ans.size()); if(ans.size()!=1) printf("0\n"); else printf("%d",gro[ans[0]]); return 0;}
- poj2186Popular Cows
- POJ2186Popular Cows
- poj2186Popular Cows
- poj2186Popular Cows tarjan缩点
- poj2186Popular Cows【scc+缩点】
- POJ2186Popular Cows(强连通分量)
- poj2186Popular Cows(强连通+缩点)
- POJ2186Popular Cows(强连通分量+缩点)
- poj2186Popular Cows【强连通】【debug两小时】
- poj2186Popular Cows【强连通】【debug两小时】
- POJ2186Popular Cows(强连通分量分解模板)
- Cows
- Cows
- poj2186Popular Cows_ 强连通分支_缩点tarjan算法
- Jumping Cows
- Milking Cows
- Cows 算法
- Milking Cows
- PrepareStatement 与 Statement 的区别
- 图片悬浮网页侧边栏固定不动代码
- UIControl
- MapKit学习笔记
- 启用 Tomcat 下的 HTTPS/java 证书签证
- poj2186Popular Cows
- 自动检测文本的字符集
- [Linker Error] Unable to open file 'DIALOG.RES'
- Android EditText不弹出输入法总结,焦点问题的总结
- SpringMVC +Spring+ SpringJDBC整合实例。
- CSS中遇到的一些常见问题
- 【java】基于OS信号实现Java异步通知
- UITableView
- SecureCRT不能输入命令