zoukankan      html  css  js  c++  java
  • POJ 2186 受欢迎的牛 Tarjan基础题

     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[N],cnt=1,ans,out[N],belong[N],dfn[N],low[N],indx,tar,miao;
    10 bool inst[N];
    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
    ",ans);
    77     return 0;
    78 }
  • 相关阅读:
    自顶向下的单元测试策略
    孤立的测试策略
    单元测试
    控制流与数据流,信息流
    白盒测试的特点
    白盒测试
    黑盒测试优缺点
    appium对博客园APP进行自动化测试
    招聘测试人员,我在面试什么?
    测试开发这一年
  • 原文地址:https://www.cnblogs.com/mrsheep/p/7840420.html
Copyright © 2011-2022 走看看