题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805063963230208
题意:给n个顶点,m条边,问每次删除一个点会不会破坏图的连通性。
思路:用dfs/bfs求图的连通分量个数,每次求出删除点之前和之后的连通分量数cnt、cnt1,若cnt1>cnt+1,则破坏了连通性;否则就没有破坏连通性。
AC代码:
1 #include2 using namespace std; 3 4 int n,m,k,t1,t2,cnt,cnt1; 5 int a[505][505],vis[505]; 6 queue q; 7 8 void bfs(int p){ 9 q.push(p);10 while(!q.empty()){11 int nw=q.front();12 q.pop();13 for(int i=0;i cnt+1)47 printf("Red Alert: City %d is lost!\n",t1);48 else49 printf("City %d is lost.\n",t1);50 if(i==n)51 printf("Game Over.\n");52 cnt=cnt1;53 }54 return 0;55 }