POJ 2186 受欢迎的牛 Tarjan基础题
2017-11-15 18:40
162 查看
1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<vector> 5 #include<stack> 6 #define M 50010 7 #define N 10010 8 using namespace std; 9 int n,m,u,v,head ,cnt=1,ans,out ,belong ,dfn ,low ,indx,tar,miao; 10 bool inst ; 11 stack <int> st; 12 struct edge 13 { 14 int u,v; 15 }e[M],tmp[M]; 16 void add(int u,int v) 17 { 18 e[cnt].v=v; 19 e[cnt].u=head[u]; 20 head[u]=cnt++; 21 } 22 void dfs(int u) 23 { 24 dfn[u]=low[u]=++indx; 25 inst[u]=1; 26 st.push(u); 27 for (int i=head[u];i;i=e[i].u) 28 { 29 int v=e[i].v; 30 if(!dfn[v]) 31 { 32 dfs(v); 33 low[u]=min(low[u],low[v]); 34 } 35 else 36 if (inst[v]) 37 low[u]=min(low[u],dfn[v]); 38 } 39 if (dfn[u]==low[u]) 40 { 41 tar++; 42 while (1) 43 { 44 int t=st.top(); 45 st.pop(),inst[t]=0; 46 belong[t]=tar; 47 if (t==u) 48 break; 49 } 50 }} 51 int main() 52 { 53 scanf("%d%d",&n,&m); 54 for (int i=1;i<=m;i++) 55 { 56 scanf("%d%d",&u,&v); 57 add(u,v); 58 tmp[i].u=u; 59 tmp[i].v=v; 60 } 61 for (int i=1;i<=n;i++) 62 if (dfn[i]==0) dfs(i); 63 for (int i=1;i<=m;i++) 64 { 65 u=tmp[i].u,v=tmp[i].v; 66 if (belong[u]!=belong[v]) 67 ++out[belong[u]]; 68 } 69 for (int i=1;i<=tar;i++) 70 if (out[i]==0) 71 if (miao==0) 72 miao=i; 73 else miao=-1; 74 for (int i=1;i<=n;i++) 75 if (belong[i]==miao) ans++; 76 printf("%d\n",ans); 77 return 0; 78 }
相关文章推荐
- [BZOJ 1051][POJ 2186] 受欢迎的牛/Popular Cows Tarjan缩点+判断出度
- BZOJ 1051 || POJ 2186 受欢迎的牛 Tarjan
- poj 2186: Popular Cows(tarjan基础题)
- poj - 2186- 强连通 - 最受欢迎的牛的个数
- poj 2186 Tarjan (666的牛)
- POJ2186 Popular Cows Tarjan 链接表 pascal解题报告
- 【tarjan】BZOJ 1051:受欢迎的牛
- poj 2186 Popular Cows (tarjan + 缩点)
- 【tarjan+缩点】BZOJ1051-受欢迎的牛
- poj 2186 Popular Cows tarjan
- poj 2186 Popular Cows tarjan
- POJ 1236 Networks of School Tarjan 基础
- 【Tarjan】BZOJ1051(HAOI2006)[受欢迎的牛]题解
- [bzoj1051] [HAOI2006]受欢迎的牛 (Tarjan+缩点)
- P2341 [HAOI2006]受欢迎的牛(tarjan+缩点)
- poj 2186 Popular Cows 有向图强连通分量 tarjan
- 洛谷P2341 受欢迎的牛——Tarjan+缩点模板
- bzoj1051 [HAOI2006]受欢迎的牛[图论][tarjan缩点]
- [HAOI2006]受欢迎的牛 Tarjan缩点
- SSL 1313 洛谷 2341 POJ 2186 受欢迎的牛 Popular Cows