HAOI2006 受歡迎的牛

2021-07-23 02:05:10 字數 1416 閱讀 2422

這個就是強連通,計算出度為0的點就好~

也沒森麼其它好講的啦~

提交傳送們

description

每一頭牛的願望就是變成一頭最受歡迎的牛。現在有n頭牛,給你m對整數(a,b),表示牛a認為牛b受歡迎。 這種關係是具有傳遞性的,如果a認為b受歡迎,b認為c受歡迎,那麼牛a也認為牛c受歡迎。你的任務是求出有多少頭牛被所有的牛認為是受歡迎的。

input

第一行兩個數n,m。 接下來m行,每行兩個數a,b,意思是a認為b是受歡迎的(給出的資訊有可能重複,即有可能出現多個a,b)

output

乙個數,即有多少頭牛被所有的牛認為是受歡迎的。

sample input

3 3

1 2

2 1

2 3

sample output

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

struct nodea[110000];int len,first[11000],n,m;

void ins(int x,int y)

int sta[11000],tp;bool v[11000];

int cnt,belong[11000];

int low[11000],dfn[11000],id,num[11000];

int chu[11000],ru[11000];

void dfs(int x)

else

if(v[y]==true)

}if(low[x]==dfn[x])while(i!=x);

}}int main()

for(int i=1;i<=n;i++)if(dfn[i]==0)dfs(i);

memset(num,0,sizeof(num));

for(int i=1;i<=n;i++)num[belong[i]]++;

for(int i=1;i<=len;i++)

}if(cnt==1)

int ans,zs=0;

for(int i=1;i<=cnt;i++)

}if(zs==1)printf("%d\n",num[ans]);

else

printf("0\n");

}

HAOI2006 受歡迎的牛

題目 分析 tarjan縮點。最後如果只有乙個出度為0的點,則答案就是這個點包含的牛數,否則為0.一開始最後統計的時候寫了dfs,後來發現是錯誤的,反例 include include include include include using namespace std const int tma...

HAOI2006 受歡迎的牛

haoi2006 受歡迎的牛 每一頭牛的願望就是變成一頭最受歡迎的牛。現在有n頭牛,給你m對整數 a,b 表示牛 a 認為牛 b受歡迎。這種關係是具有傳遞性的,如果a認為b受歡迎,b認為c受歡迎,那麼牛a也認為牛c受歡迎。你的任務是求出有多少頭牛被所有的牛認為是受歡迎的。第1行兩個整數n,m 接下來...

HAOI2006 受歡迎的牛

1051 haoi2006 受歡迎的牛time limit 10 sec memory limit 162 mb submit 7267 solved 3868 submit status discuss 每一頭牛的願望就是變成一頭最受歡迎的牛。現在有n頭牛,給你m對整數 a,b 表示牛a認為牛b受...