第乙個答案是統計圖中橋的個數
如果乙個點-雙連通分量中邊的個數大於點的個數那麼這個塊中所有的邊都是衝突的,累加到第二個答案中去。
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...