P2661 資訊傳遞

2022-09-17 08:54:14 字數 2443 閱讀 1571

n' role="presentation">n

n個同學(編號為

1' role="presentation">1

1 到

n' role="presentation">n

n )正在玩乙個資訊傳遞的遊戲。在遊戲裡每人都有乙個固定的資訊傳遞物件,其中,編號為

i' role="presentation">i

i 的同學的資訊傳遞物件是編號為 ti

' role="presentation">tit

i ​ 的同學。

遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知的生日資訊告訴各自的資訊傳遞物件(注意:可能有人可以從若干人那裡獲取資訊, 但是每人只會把資訊告訴乙個人,即自己的資訊傳遞物件)。當有人從別人口中得知自 己的生日時,遊戲結束。請問該遊戲一共可以進行幾輪?

輸入格式:共 2

' role="presentation">2

2 行。 第 1

' role="presentation">1

1 行包含

1' role="presentation">1

1個正整數

n' role="presentation">n

n ,表示

n' role="presentation">n

n 個人。 第 2

' role="presentation">2

2 行包含

n' role="presentation">n

n 個用空格隔開的正整數 t1

,t2,

....

.,tn

' role="presentation">t1,

t2,.

....

,tnt

1,t2

,...

..,t

n ,其中第 ii 個整數 t_i 表示編號為

i' role="presentation">i

i的同學的資訊傳遞物件是編號為ti

' role="presentation">tit

i 的同學, ti

≤n且t

i≠i' role="presentation">ti≤

n且ti

≠iti

≤n且t

i≠i1 個整數,表示遊戲一共可以進行多少輪。

輸入樣例#1:

5 2 4 2 3 1

輸出樣例#1:

3 說明

樣例1解釋

遊戲的流程如圖所示。當進行完第 33 輪遊戲後, 4 4 號玩家會聽到 22 號玩家告訴他自己的生日,所以答案為 33 。當然,第 33 輪遊戲後, 2 2 號玩家、 33 號玩家都能從自己的****得知自己的生日,同樣符合遊戲結束的條件。

對於 30

' role="presentation">30

30 的資料, n≤

200;

' role="presentation">n

≤200;n

≤200

;對於

60' role="presentation">60

60 的資料,n≤

2500

;' role="presentation">n

≤2500;n

≤2500

;對於

100' role="presentation">100

100 的資料, n≤

200000

。' role="presentation">n

≤200000。n

≤200000

#include 

using

namespace

std;

const

int maxn=2e5+10;

struct nodeedge[maxn*10];

int head[maxn*10];

bool vis[maxn];

int cnt;

int dfn[maxn],low[maxn];

void add(int x,int v)

int time;

int ans=0x3f3f3f3f;

stack

st;int num=0;

void tarjan(int u)

else

if(vis[v])

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

if(num>1) ans=min(ans,num);

}}int read()

int main()

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

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

printf("%d\n",ans);

return0;}

P2661 資訊傳遞

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

P2661 資訊傳遞

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

P2661 資訊傳遞

並查集求解有向圖最小環 首先有個特殊要求的就是對於圖的邊是沒有長度的。然後我們採取乙個簡化操作,在找到這個環之間,由於只需要求環的長度,所以對於環的最後一條邊,不加入之前先判斷指向的點能不能最後指向原點。includeusing namespace std int n int ans 200050 ...