洛谷P2341 受歡迎的牛 Tarjan縮點

2022-03-11 13:59:05 字數 832 閱讀 4268

題意:a喜歡b,b喜歡c,那麼a就喜歡c,每個人都必定喜歡自己,求問被所有人喜歡的人有多少個

輸入格式:n,m分別是人總數和喜歡關係的數目,接下來m行每行兩個數字a,b代表a喜歡b

直接套tarjan演算法縮點模板,記錄數目並最後記錄每個點出度即可即可。

#include#define maxn 10001

using

namespace

std;

vector

g[maxn];

stack

s;intn,m;

int dfn[maxn],vis[maxn],low[maxn],color[maxn],num[maxn],colornum=0

,res[maxn],cnt;

//num記錄每個顏色下點的數目,res記錄每個點的出度

void paint(int

x)void tarjan(int

x)

else

if (vis[q]) low[x]=min(low[x],dfn[q]);

}if (low[x]==dfn[x])

paint(x);

}}int

main()

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

int ans=0

;

for(int i=1;i<=n;i++)}}

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

else

if(res[i]==0

) }

cout

return0;

}

洛谷 P2341 受歡迎的牛

畫一張圖形象一下 tarjan演算法模板,這裡用於縮點 1931 else if col k 3235 36 if low u dfn u 3746 pru.pop 47 48return 49 50signed main 5158 for register int i 1 i n i 5964 6...

洛谷P2341 受歡迎的牛

usaco03fall haoi2006 受歡迎的牛 g 洛谷 電腦科學教育新生態 luogu.com.cn 用 tarjan 縮點後,在每個強連通分量中的點都可以互相到達。在 dag 中 如果有大於 1 個出口,則兩個出口之間肯定不能相互到達,所以沒有明星 如果只有乙個出口,則別的點一定可以到出口...

洛谷P2341(受歡迎的牛)題解

題目描述 每頭奶牛都夢想成為牛棚裡的明星。被所有奶牛喜歡的奶牛就是一頭明星奶牛。所有奶 歡b,b喜歡c,那麼a也喜歡c。牛欄裡共有n 頭奶牛,給定一些奶牛之間的愛慕關係,請你 算出有多少頭奶牛可以當明星。輸入輸出格式 輸入格式 第一行 兩個用空格分開的整數 n和m 第二行到第m 1行 每行兩個用空格...