Commit ddc112d6 authored by 24OI-bot's avatar 24OI-bot
Browse files

style: format markdown files with remark-lint

parent 48ca69a2
Loading
Loading
Loading
Loading
+25 −23
Original line number Diff line number Diff line
@@ -115,7 +115,7 @@ low[u] = min(low[u], num[v]);

和割点差不多,还叫做割桥。

> 对于一个无向图,如果删掉一条边后图中的连通分量数增加了,则称这条边为桥或者割边。严谨来说,就是:假设有连通图G=\{V,E\},e是其中一条边(即e \in E),如果G-e是不连通的,则边e是图G的一条割边(桥)。
> 对于一个无向图,如果删掉一条边后图中的连通分量数增加了,则称这条边为桥或者割边。严谨来说,就是:假设有连通图 G={V,E},e 是其中一条边(即 e \\in E),如果 G-e 是不连通的,则边 e 是图 G 的一条割边(桥)。

比如说,下图中,

@@ -123,7 +123,6 @@ low[u] = min(low[u], num[v]);

红色箭头指向的就是割边。


### 实现

和割点差不多,只要改一处: $low_v>num_u$ 就可以了,而且不需要考虑根节点的问题。
@@ -131,7 +130,9 @@ low[u] = min(low[u], num[v]);
割边是和是不是根节点没关系的,原来我们求割点的时候是指点 $v$ 是不可能不经过父节点 $u$ 为回到祖先节点(包括父节点),所以顶点 $u$ 是割点。如果 $low_v=num_u$ 表示还可以回到父节点,如果顶点 $v$ 不能回到祖先也没有另外一条回到父亲的路,那么 $u-v$ 这条边就是割边。

### 代码实现

下面代码实现了求割边,其中,当 `isbridge[x]` 为真时, `(father[x],x)` 为一条割边。

```cpp
int low[MAXN], dfn[MAXN], iscut[MAXN], dfs_clock;
bool isbridge[MAXN];
@@ -159,6 +160,7 @@ void tarjan(int u, int fa) {
```

## 练习

-    [P3388【模板】割点(割顶)](https://www.luogu.org/problem/P3388) 
-    [POJ2117 Electricity](https://vjudge.net/problem/POJ-2117) 
-    [HDU4738 Caocao's Bridges](https://vjudge.net/problem/HDU-4738)