mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
15 lines
410 B
C++
15 lines
410 B
C++
int dfs[MAXN], low[MAXN], tim = 0;
|
|
inline void Dfs(int u) {
|
|
dfs[u] = low[u] = ++tim;
|
|
for (Edge *p = a[u]; p; p = p->next) if (p->flag) {
|
|
if (!dfs[p->y]) {
|
|
p->opt->flag = false;
|
|
Dfs(p->y);
|
|
low[u] = min(low[u], low[p->y]);
|
|
} else low[u] = min(low[u], dfs[p->y]);
|
|
}
|
|
for (Edge *p = a[u]; p; p = p->next) if (p->opt->flag == false && low[p->y] > dfs[u]) {
|
|
p->bridge = p->opt->bridge = true;
|
|
}
|
|
}
|