洛谷 P2661 資訊傳遞(拓撲排序 最小環)

2022-04-06 18:09:38 字數 777 閱讀 6263

(最大環:

用拓撲排序,將能在拓撲佇列中的所有點刪掉,即這些點不能在環中,判環。

然後找出在環中的點,進行dfs,搜一遍環看它的sum,取min

ac**:

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7int n,ans=0x7f7f7f

,tot;

8const

int n=200005;9

int head[n],in

[n],c[n],vis[n],sum;

10 queueq;

11struct

nodeedge[n];

14void add(int u,int

v)19

void

toposort()

21while(!q.empty())27}

28}29}

30void dfs(int

u)34 sum+=1

;35 vis[v]=1;36

dfs(v);37}

38}39int

main()

49toposort();

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

56 printf("%d"

,ans);

57return0;

58 }

ac**

洛谷P2661 資訊傳遞

有n個同學 編號為1到n 正在玩乙個資訊傳遞的遊戲。在遊戲裡每人都有乙個固定的資訊傳遞物件,其中,編號為i的同學的資訊傳遞物件是編號為ti同學。遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知的生日資訊告訴各自的資訊傳遞物件 注意 可能有人可以從若干人那裡獲取資訊,但是每...

洛谷 P2661 資訊傳遞

有 n個同學 編號為1到 n 正在玩乙個資訊傳遞的遊戲。在遊戲裡每人都有乙個固定的資訊傳遞物件,其中,編號為 i的同學的資訊傳遞物件是編號為 ti同學。遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知的生日資訊告訴各自的資訊傳遞物件 注意 可能有人可以從若干人那裡獲取資訊...

洛谷 P2661 資訊傳遞

有 nn n 個同學 編號為 11 1 到 nn n 正在玩乙個資訊傳遞的遊戲。在遊戲裡每人都有乙個固定的資訊傳遞物件,其中,編號為 ii i 的同學的資訊傳遞物件是編號為 tit iti 的同學。遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知的生日資訊告訴各自的資訊傳...