題意:給你n個點,m條邊,要你刪除兩個點以及和這兩個點直接相連的邊,問你剩下的圖中,最大的連通分量的數目。
分析:我們可以列舉每個點,然後看剩下的圖中是否有割點,這裡需要注意,乙個單獨的連通分量刪除就沒有了,坑點在這裡!!!
**:#include #include #include #include #include using namespace std;
const int maxn=5005;
const int maxm=1000005;
struct edgenode
edge[maxm];
int head[maxn],cnt,flag;
int dfn[maxn],low[maxn],cixu,n,gds[maxn];
void add(int x,int y)
void init()
void dfs(int u,int fa)
}else if(v!=fa)
low[u]=min(low[u],dfn[v]);
}}int tarjan()
}int mn=-1;
if(sum==n-1)sum--;
for(int i=1;i<=n;i++)mn=max(mn,gds[i]);
sum+=mn;
return sum;
}int main()
for(i=1;i<=n;i++){
for(j=0;j
hdu 4005 邊雙聯通 LCA
題意 有一幅圖,現在要加一條邊,加邊之後要你刪除一條邊,使圖不連通,費用為邊的費用,要你求的是刪除的邊的最小值的最大值 每次都可以刪除一條邊,選最小的刪除,這些最小中的最大就為答案 首先要進行縮點,把圖縮為一棵樹,因此,加入一條邊後圖就會存在乙個環,環中的任何一條邊刪除後都不會導致圖不連通 之後找一...
邊雙聯通分量
首先什麼是邊雙聯通分量?邊雙連通分量是指,在 無向圖 中刪除任意一條邊依舊聯通的聯通塊 之前講過強連通分量,這裡邊雙聯通分量的做法也需要利用tarjan演算法獲得邊雙聯通分量。對於邊雙聯通分量中還有乙個概念,就是橋。橋指的是 刪除該邊圖不再連通。對應的另乙個概念是 割點 割點的的是 如果除去此節點和...
邊雙聯通分量
noip最後一次學習 敲板子 橋 如果這條邊去掉後圖的聯通分量增加,則這條邊稱為橋。邊雙聯通分量 如果乙個對於乙個圖的某個子圖,任意兩點至少存在兩條 邊不重複 的路徑,則這個子圖是邊雙聯通分量。很顯然,任意乙個邊雙中不含有橋。除橋外每條邊都僅屬於乙個邊雙。如果把原圖中所有橋刪除,每個聯通分量都是原圖...