HDU 3394 Railway 點雙連通分量

2021-08-08 22:45:29 字數 989 閱讀 6281

題意

給定乙個無向圖,找出不在任意乙個環上的邊數和同時在多個環上的邊數。

思路點-雙連通分量如果在邊數等於點數,那麼形成乙個環,邊數多於點數,說明環中有多條邊。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace

std;

const

int inf = ( 2e9 ) + 2;

const ll maxn = 10010;

struct edge

;stack

st;vector

g[maxn],blocks[maxn];

int dfn[maxn],low[maxn];

bool vis[maxn];

int index,bcc;

int ans1,ans2;

void init(int n)

void tarjan(int u,int fa)

); tarjan(v,u);

low[u]=min(low[u],low[v]);

if(low[v]>=dfn[u])

if(cnt2>cnt1)ans2+=cnt2;

}if(low[v]>dfn[u])ans1++;

}else

if(dfn[v]void outputblocks()

}int main()

for(int i=0;iif(!dfn[i])

tarjan(i,-1);

printf("%d %d\n",ans1,ans2);

}}

HDU 3394 Railway(點雙連通分量)

description 給乙個無向圖,如果至少有兩個環共用了一些邊,那麼這些邊被認為是衝突邊,如果一些邊不在任何乙個環中,這些邊被認為是多餘邊,問這個圖中有多少多餘邊和衝突邊 input 多組用例,每組用例第一行為兩個整數n和m表示該無向圖的點數和邊數,之後m行每行兩個整數u,v表示u和v之間有一條...

HDU3394 Railway 點雙連通分量

題意 給出乙個無向圖,求出它的衝突邊數和多餘邊數,衝突邊就是那些同時存在於多個環中的邊,而多餘邊是不在任何乙個環中的邊.要點 多餘邊很明顯就是橋,我們可以推斷除衝突邊只能在點雙連通分量中,感覺邊雙應該也行,主要就是求出分量後看分量中點數n和邊數m的關係,如果n include include inc...

hdu3394Railway 雙連通分量

題目描述 給出一張無向圖,分別求出圖中滿足如下兩種條件的邊的數量 1 該邊不在任何簡單環當中 2 該邊在多個簡單環當中 方法 不在任何簡單環當中的,就是圖中的橋,可以求出來 通過簡單環聯想到點雙連通分量,找到某個雙連通分量,若該雙連通分量包含的邊數超過該點雙連通分量包含的點數,那麼這個雙 連通分量中...