poj2117求割點後最多的塊。

2022-05-04 10:24:08 字數 664 閱讀 4888

tarjan演算法,列舉割點(注意此題無向圖可能不連通),每個割點分割後最大塊數+連通分量-1即可。開始老是tle,後來比較了他人**,只在vector.>,用全域性變數即可,用區域性tle。記住教訓。

#include//600+ms/5000ms

#include#include//用這個做鍊錶,儲存邊,方便。

#includeusing namespace std;

int subnet[10001]; //割點i有subnet[i]+1個子網路

int dfn[10001];

int low[10001];

int visited[10001]; //標記訪問

int time=0; //時間戳

int son=0; //dfs樹根的孩子結點個數,割點判斷條件之一

vector>v(10001); //做全域性變數時時間降低,若做區域性變數,雖然節省空間,用引數傳遞,時間增加tle!!!!!!!!!

int min(int a,int b)

void tarjan(int root,int u,int fa) //dfs

printf("%d\n",count+countzitu-1);

}return 0;

}

POJ 2117 割點 連通分量

題目鏈結 題目大意 在乙個非連通圖中,求乙個切除圖中任意乙個割點方案,使得圖中連通分量數最大。解題思路 乙個大陷阱,m可以等於0,這時候要特判,結果就是n 1。同時出題者腦子秀逗了,也不給c的範圍。我開了兩倍點大小re了,於是怒開了五倍點大小才a了。本題不是連通圖,需要先計算原始圖中的連通分量。方法...

pku 2117 tarjan演算法求割點

給出乙個森林,求刪掉乙個點後,形成的連通塊的個數。和pku1523一樣的意思,只不過這裡是森林了。還要加上原來的連通塊數。注意 這裡的當m 0 時要單獨考慮,因為要刪掉乙個點,所以 n 1 而單純的求的話是n了。include include include define maxn 10010 us...

pku 2117 tarjan演算法求割點

給出乙個森林,求刪掉乙個點後,形成的連通塊的個數。和pku1523一樣的意思,只不過這裡是森林了。還要加上原來的連通塊數。注意 這裡的當m 0 時要單獨考慮,因為要刪掉乙個點,所以 n 1 而單純的求的話是n了。view code include include include define max...