題目描述
有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 個整數,表示遊戲一共可以進行多少輪。
輸入輸出樣例
輸入樣例#1:
5 2 4 2 3 1
輸出樣例#1:
3【分析】
求最小環
想法:排除不是環的點,然後再剩下的環中搜一遍,找出最小環
【**】
//洛谷 p2661 資訊傳遞
#include
#include
#define fo(i,j,k) for(i=j;i<=k;i++)
using
namespace
std;
int a[200001],ru[200001],n,ans=1e8;
int main()
fo(i,1,n)
if(!ru[i])
fo(i,1,n) //跑一編迴路並統計長度
if(ru[i]!=-1)
printf("%d\n",ans);
return
0;}
noip 2015 資訊傳遞
題目描述 有n個同學 編號為1到n 正在玩乙個資訊傳遞的遊戲。在遊戲裡每人 都有乙個固定的資訊傳遞物件,其中,編號為i的同學的資訊傳遞物件是 編號為ti同學。遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時 將自己當前所知的生日資訊告訴各自的資訊傳遞物件 注意 可能有人 可以從若干人那...
noip2015 資訊傳遞
題目描述 有n個同學 編號為1到n 正在玩乙個資訊傳遞的遊戲。在遊戲裡每人都有乙個固定的資訊傳遞物件,其中,編號為i的同學的資訊傳遞物件是編號為ti同學。遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知的生日資訊告訴各自的資訊傳遞物件 注意 可能有人可以從若干人那裡獲取資...
NOIP2015 資訊傳遞
給你乙個有向圖,要你找到圖中的最小環。呵呵,去年聯賽前做了這道題,連圖都不會存 今年聯賽前終於可以秒切了.tarjan求出最小的非單個點的強連通分量就好了 好像還可以用拓撲排序那套理論加上dfs求,嗯,膩害 include include include include include includ...