noip 2015 資訊傳遞 dfs

2021-07-23 23:06:59 字數 522 閱讀 8923

額,好水啊,有人說用tarjan但我覺得用tarjan都多餘了 ,直接維護乙個標記dfn:0表示沒有進棧 1表示在棧中 2表示已經出棧,然後每一次dfs的時候發現如果回到了祖先就說明出現了環,找乙個最小環就好了

可是我後來試了一下只有標記在棧中沒有標記出棧 居然過了9組,資料有點水啊

#include#include#include#define maxn 200020

using namespace std;

int n,head[maxn],tot,dfn[maxn],cnt,hi[maxn],min;

struct edgee[maxn*2];

void adde(int a,int b)

void dfs(int u,int h){

hi[u]=h;dfn[u]=1;

for(int i=head[u];i!=-1;i=e[i].next){

int v=e[i].v;

if(!dfn[v])dfs(v,h+1);

else if(hi[v]

NOIP 2015 資訊傳遞

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

noip 2015 資訊傳遞

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

noip2015 資訊傳遞

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