1013. Battle Over Cities (25)

来源:互联网 发布:win10 mysql安装失败 编辑:程序博客网 时间:2024/05/17 05:54

题目:https://www.patest.cn/contests/pat-a-practise/1013

注意:节点数据小,可以采用邻接表存储图,使用DFS算法

#include<algorithm>#include<cstdio>using namespace std;#define MAXN 1010#define INF 1000000000int n,m,k;int G[MAXN][MAXN]={0},vis[MAXN]={0};;int block = 0,occupy;void DFS(int s){if(s == occupy)return;vis[s] = true;for(int i=0; i<=n; i++){if(vis[i] == false && G[s][i]!=0){DFS(i);}}}void DFS_Trave(){fill(vis, vis+MAXN, false);block=0;for(int i=1; i<=n; i++){if(i != occupy && vis[i]==false){DFS(i);block++;}}}int main(){//输入数据,构造图scanf("%d%d%d",&n,&m,&k);for(int i=0; i<m; i++){int a,b;scanf("%d%d",&a,&b);G[a][b] = G[b][a] = 1;}//k次循环,DFS遍历for(int i=0; i<k; i++){int x;scanf("%d",&occupy);DFS_Trave();printf("%d\n",block-1);}return 0;}


0 0
原创粉丝点击