寻找连通图的割点和桥用的也是tarjan算法,我们计算每个点不经过父亲能到达点的最小dfs序,如果是大于等于父亲的,则说明去掉父节点,该点即无法同上面连通,所以父节点是割点。桥类似,我们对于每个点标记它到父亲的那条边是否是桥。
cf1277E:
给出一个图求对于两点ab,有多少对xy使得从x到y的每一条路径都必经ab。
1 |
|
桥的代码:
1 | int low[MAXN], dfn[MAXN], iscut[MAXN], dfs_clock; |
寻找连通图的割点和桥用的也是tarjan算法,我们计算每个点不经过父亲能到达点的最小dfs序,如果是大于等于父亲的,则说明去掉父节点,该点即无法同上面连通,所以父节点是割点。桥类似,我们对于每个点标记它到父亲的那条边是否是桥。
cf1277E:
给出一个图求对于两点ab,有多少对xy使得从x到y的每一条路径都必经ab。
1 | #include<bits/stdc++.h> |
桥的代码:
1 | int low[MAXN], dfn[MAXN], iscut[MAXN], dfs_clock; |