HDU 1269 迷宮城堡 強連通分量

2021-07-03 06:37:09 字數 938 閱讀 3315

一道強連通分量的裸題,當只有乙個強連通分量的時候輸出yes,否則輸出no

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

typedef long long ll;

const int inf=0x3f3f3f3f;

const double pi= acos(-1.0);

const double esp=1e-6;

const int maxn=10010;

const int maxm=100010;

int head[maxn],dfn[maxn],low[maxn],belong[maxm],stak[maxn],instack[maxn];

//stak模擬棧,dfn深搜次序陣列,low為u結點或者u的子樹結點所能追溯到的最早棧中結點的次序號

//belong每個結點所對應的強連通分量標號陣列,instack為是否在棧中的標記陣列

int cnt,index,top,ans;

struct node

edge[maxm<<1];

void init()

void add(int u,int v)

void tarjan(int u)//tarjan演算法求有向圖的強連通分量

else if(instack[v])

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

}}int main()

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

if(ans==1)

puts("yes");

else

puts("no");

}return 0;

}

hdu 1269 迷宮城堡 強連通分量

problem 給乙個有向圖,問這個圖是否兩兩都可互相達。solution 求強連通分量,看一共有幾個強連通分量,如果只有乙個則兩兩可互相達。include include include include include include include include include include...

迷宮城堡 HDU 1269 強連通分量

tarjan演算法 dfn為最先訪問的時間點 low為本節點通過他的兒子更新到的最小時間點 stack int s int vis n res vector int a n void dfs int x else if vis y 1 訪問過,但y在stack中 low x min low x lo...

HDU1269迷宮城堡(強連通分量)

problem description 為了訓練小希的方向感,gardon建立了一座大城堡,裡面有n個房間 n 10000 和m條通道 m 100000 每個通道都是單向的,就是說若稱某通道連通了a房間和b房間,只說明可以通過這個通道由a房間到達b房間,但並不說明通過它可以由b房間到達a房間。gar...