好歹也是道提高組的題啊。。。。淪為了黃題。。。。
顯然,如果乙個人從另乙個人口中知道了自己的生日,那麼就是跑了乙個環後回到自己,所以遊戲結束的輪數就是最小環的大小。暴力dfs即可。
#includeusing namespace std;
const int maxn=2e5+10;
const int inf=0x3f3f3f3f;
int n;
int to[maxn],depth[maxn],num[maxn];
int tot,ans=inf;
int read()
void dfs(int u,int d)
ans=min(ans,d-depth[to[u]]+1);
}else
dfs(to[u],d+1);
}int main()
}cout
}
洛谷 P2661 資訊傳遞(拓撲排序 最小環)
最大環 用拓撲排序,將能在拓撲佇列中的所有點刪掉,即這些點不能在環中,判環。然後找出在環中的點,進行dfs,搜一遍環看它的sum,取min ac 1 include2 include3 include4 include5 include6 using namespace std 7int n,ans...
洛谷P2661 資訊傳遞 拓撲排序求最小環
由題可知,乙個人能經別人知道自己的生日,則他必然在乙個環中,所以顯然題目是讓我們求圖中最小的環。結合本題的特性,每個人的出度都為1 11,那麼每個人必定只在乙個環中。如果有人的入度為0 00則說明他一定不在環中,我們可以用拓撲的思想把他及他所連的邊刪去,然後繼續做拓撲排序刪除入度為0 00的點即可。...
洛谷2661 資訊傳遞
題目描述 有n個同學 編號為1到n 正在玩乙個資訊傳遞的遊戲。在遊戲裡每人都有乙個固定的資訊傳遞物件,其中,編號為i的同學的資訊傳遞物件是編號為ti同學。遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知的生日資訊告訴各自的資訊傳遞物件 注意 可能有人可以從若干人那裡獲取資...