HDU 3394 雙連通分量 橋 Railway

2022-05-22 09:06:15 字數 1180 閱讀 3874

第乙個答案是統計圖中橋的個數

如果乙個點-雙連通分量中邊的個數大於點的個數那麼這個塊中所有的邊都是衝突的,累加到第二個答案中去。

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8

#define mp make_pair

9#define ft first

10#define sd second

11using

namespace

std;

1213 typedef pairpii;

1415

const

int maxn = 10000 + 10;16

17int

n, m;

1819 vectorg[maxn];

2021 vectorbcc[maxn];

22 stacks;

23int

pre[maxn], low[maxn], dfs_clock, bcc_cnt;

2425

intans1, ans2;

2627

void dfs(int u, int

fa)28

49if(low[v] > pre[u]) ans1++; //

bridge50}

51}52else

if(v != fa && pre[v]

5357}58

}5960void

find_bcc()

6166

67bool

vis[maxn];

6869

intmain()

7080

81 ans1 = ans2 = 0;82

find_bcc();

8384

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

8592

if(!vis[x.sd]) 93}

94if(sz > vertex) ans2 +=sz;95}

9697 printf("

%d %d\n

", ans1, ans2);98}

99100

return0;

101 }

**君

hdu3394Railway 雙連通分量

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

HDU 3394 Railway(點雙連通分量)

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

HDU3394 Railway 點雙連通分量

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