2105 NOIP2015 資訊傳遞

2022-05-13 13:36:55 字數 2060 閱讀 1190

★☆   輸入檔案:2015message.in輸出檔案:2015message.out簡單對比

時間限制:1 s  

記憶體限制:256 mb

有n個同學(編號為1到n)正在玩乙個資訊傳遞的遊戲。在遊戲裡每人都有乙個固定的資訊傳遞物件,其中,編號為i的同學的資訊傳遞物件是編號為ti同學。

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

輸入共2行。

第1行包含1個正整數n表示n個人。

第2行包含n個用空格隔開的正整數t1,t2,……,tn其中第i個整數ti示編號為i

的同學的資訊傳遞物件是編號為ti的同學,ti≤n且ti≠i

資料保證遊戲一定會結束。

輸出共 1 行,包含 1 個整數,表示遊戲一共可以進行多少輪。

52 4 2 3 1

3遊戲的流程如圖所示。當進行完第 3 輪遊戲後, 4 號玩家會聽到 2 號玩家告訴他自

己的生日,所以答案為 3。當然,第 3 輪遊戲後, 2 號玩家、 3 號玩家都能從自己的訊息

**得知自己的生日,同樣符合遊戲結束的條件。

對於 30%的資料, n ≤ 200;

對於 60%的資料, n ≤ 2500;

對於 100%的資料, n ≤ 200000。

在此鍵入。

pascal

cc++

一開始用vector居然還能搞四十分

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10

using

namespace

std;

11const

int maxn=200001;12

intn;

13struct

node

14a[maxn];

18int

main()

194243}

44//

print(i);

45for(int j=1;j<=a[a[i].to].num;j++)

46if(a[a[i].to].v[j]==a[i].to)

47 printf("

%d",ans),exit(0

);48}49

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

50 a[i].but=0;51

}52return0;

53 }

正確做法dfs求最小值

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include11

using

namespace

std;

12const

int maxn=300001;13

intn,a[maxn];

14int

vis[maxn];

15int ans=0x7ffffff

;16 stacks;

17int dfs(int

x)18

29else

if(vis[te]==-1)30

40s.pop();

41while(!s.empty())

4246}47

else

if(vis[te]==1)48

54}55}

56return

num;57}

58int

main()

5974

}75 printf("%d"

,ans);

76return0;

77 }

NOIP 2015 資訊傳遞

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

noip 2015 資訊傳遞

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

noip2015 資訊傳遞

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