点双联通分量(v-DCC, 无向图的极大点双连通子图):
①当第一个节点第一次被访问时,把该节点入栈.
②当dfn[x] <= low[y]成立时(1)从栈顶不断弹出节点,直至节点y被弹出(2)刚才弹出的所有节点与节点x一起构成一个v-DCC.
#include <bits/stdc++.h>
using namespace std;
inline int read() {
int x = 0, f = 0; char ch = getchar();
while (!isdigit(ch)) f = ch == '-', ch = getchar();
while (isdigit(ch)) x = (x << 3) + (x << 1) + (ch ^ 48), ch = getchar();
return f ? -x : x;
}
void print(int x) {
if (x < 0) x = -x, putchar('-');
if (x < 10) putchar(x + '0');
else {
print(x / 10)