1 # include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 const int N = 100; 6 int num[N], flag[N], low[N], root, V, E, index = 0, e[N][N]; 7 void dfs(int cur, int father) { 8 int child = 0; 9 index++; 10 num[cur] = index; 11 low[cur] = index; 12 for (int i = 1; i <= V; i++) { 13 if (e[cur][i] == 1) { 14 if (num[i] == 0) { 15 child++; 16 dfs(i, cur); 17 low[cur] = min(low[cur], low[i]); 18 if (cur == root&&child == 2) 19 flag[cur] = 1; 20 if (cur != root&&low[i] >= num[cur]) 21 flag[cur] = 1; 22 } 23 else if (i != father) { 24 low[cur] = min(low[cur], num[i]); 25 } 26 } 27 } 28 }