HDU 1269(Tarjan模板 求強連通分量)

2021-10-23 05:39:11 字數 850 閱讀 4570

題意:

求乙個有向圖n個點 m 條邊,是否是強連通分量,如果是輸出yes, 不是輸出no.

資料範圍

n < 10000,  m < 100000

思路:tarjan模板題

補習:ac code:

/*

tarjan求有向圖的強連通分量,

*/ #include#include#include#include#includeusing namespace std;

const int maxn = 1e5 + 10;

struct edgeedge[maxn << 1];

int head[maxn], cnt, ans;

bool vis[maxn];

//dfn 第一次訪問到該節點的時間(時間戳)

//low[i] low[i]能從哪個點(最早時間戳)到達這個點的。

int dfn[maxn], low[maxn], tot;

stackstc;

void add_edge(int u, int v, int dis)

void tarjan(int x) else if (vis[to])

} //cout << x << " " << low[x] << " " << dfn[x] << endl;

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

void init()

}int main ()

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

if(ans == 1) else

} return 0;

}

HDU1269迷宮城堡(Tarjan模板題)

題目大意 問乙個圖是不是強連通的。tarjan模板 詳細解釋 include include include includeusing namespace std const int maxn 10010 const int maxm 100010 int n,m int cnt,tol,scnt,...

強連通分量tarjan模板hdu1269迷宮城堡

第一次寫強連通tarjan同時也是自己在hdu100題的記錄 在有向圖中的強連通分量,核心是深搜,dfn陣列記錄搜尋順序,low陣列所能返回的最小的點 include include include includeusing namespace std vectorg 10003 int dfn 1...

HDU1269 迷宮城堡(Tarjan)

題目 我是超連結 題解 就是個模板題啊 按理說應該有兩種方法 1 kobalabala 從任意乙個點開始,如果可以遍歷到所有點,而且,反置邊之後依然可以遍歷到所有點那就是yes 否則就是no 但這個方法蜜汁不對?2 tarjan.include include include using names...