#include <stdio.h>
#include <string.h>
using namespace std;
int N,M,K;
int G[1010][1010];
int t;
bool vis[1010];
void DFS(int now)
{
vis[now]=true;
for(int i=1;i<=N;i++)
{
if(i!=t&&vis[i]==false&&G[now][i]==1)
{
DFS(i);
}
}
}
int DFST()
{
int num=0;
for(int i=1;i<=N;i++)
{
if(vis[i]==false&&i!=t)
{
DFS(i);
num++;
}
}
return num;
}
int main()
{
scanf("%d%d%d",&N,&M,&K);
for(int i=0;i<M;i++)
{
int c1,c2;
scanf("%d%d",&c1,&c2);
G[c1][c2]=1;
G[c2][c1]=1;
}
for(int i=0;i<K;i++)
{
scanf("%d",&t);
memset(vis,false,sizeof(vis));
int num=DFST();
printf("%d\n",num-1);
}
return 0;
}
PAT甲1013 Battle Over Cities (25)(25 分)
最新推荐文章于 2021-11-18 16:42:40 发布