比較簡單吧。。套模板。。
gabow
#include "cstdlib"
#include "cctype"
#include "cstring"
#include "cstdio"
#include "cmath"
#include "algorithm"
#include "vector"
#include "string"
#include "iostream"
#include "sstream"
#include "set"
#include "queue"
#include "stack"
#include "fstream"
#include "strstream"
using namespace std;
#define m 20000 //題目中可能的最大點數
int stack[m],top=0; //gabow 演算法中的輔助棧
int stack2[m],top2=0; //
int dfn[m]; //深度優先搜尋訪問次序
int componetnumber=0; //有向圖強連通分量個數
int index=0; //索引號
int belong[m]; //某個點屬於哪個連通分支
vector edge[m]; //鄰接表表示
vector component[m]; //獲得強連通分量結果
bool bcount[m]=;
void gabow(int i)
} if(i==stack2[top2]) //如果stack2 的頂元素等於i,輸出相應的強連通分量
while ( stack[top--]!=i);
} }void solve(int n) //此圖中點的個數,注意是0-indexed!
;void dfs(int u)
componetnumber--; //最後我們把塊加了1。。所以要減掉
} void reshape(int n) //縮點形成新圖,n為圖中的點數
;void tarjan(int i)
{ int j;
dfn[i]=low[i]=index++;
instack[i]=true;
stack[++top]=i;
for (int e=0;e
Poj 2186 強連通分量
題目大意 分析題解 個人 view code 1 10180085 perseawe 2186 accepted 1424k 79ms pascal 2645b 2012 05 10 19 54 27 23 var 4 n,m,tot,numofblocks,time,top longint 5 d...
poj2186強連通分量
這題。做了半天,倒是讓我更加了解了強連通分量,是我的第二道強連通。石建讓我做一下這道題,我用模板再變形,改了很久之後,能給出的樣例都過了。discussion上的樣例都過了,倒是上面n多人說資料沒過ac了。你讓我們這資料過了沒ac的生活如何自理。先放著,哪天有思路再來搞。重新做了一遍,發現之前的思路...
poj2186 強連通分量 縮點
題意 如果a仰慕b,b仰慕c那麼a仰慕c,1 n同牛中求有多少頭牛被所有的牛仰慕。分析 若存在多個牛同時被所有的牛仰慕,那麼這些牛可以構成乙個強連通分量,那麼就可以把所有的強連通分量壓縮成乙個點,這樣這些點中只有處於葉子節點的強連通分量才有可能被所有的店點經過,而且是只有乙個葉子節點,這樣在求強連通...