一道強連通分量的裸題,當只有乙個強連通分量的時候輸出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...