码迷,mamicode.com
首页 > 其他好文 > 详细

PAT:1013. Battle Over Cities (25) AC

时间:2015-03-11 10:43:07      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

#include<stdio.h>
#include<string.h>
#include<vector>
using namespace std;
const int MAX=1010;

int n,m,k;          //城市数,高速公路数,查询次数
int DELETE;          //要删除的点

vector<int> ADJ[MAX];    //邻接表
bool vis[MAX];

void DFS(int s)
{
  if(DELETE==s)
    return;        //表示该点不可达
  vis[s]=true;
  for(int i=0 ; i<ADJ[s].size() ; ++i)
    if(vis[ADJ[s][i]]==false)
      DFS(ADJ[s][i]);
}

int main()
{
  scanf("%d%d%d",&n,&m,&k);
  for(int i=0 ; i<m ; ++i)
  {
    int u,v;
    scanf("%d%d",&u,&v);
    ADJ[u].push_back(v);
    ADJ[v].push_back(u);
  }

  for(int q=0 ; q<k ; ++q)
  {
    int cnt=0;                //不连通的图的数量
    scanf("%d",&DELETE);
    memset(vis,false,sizeof(vis));  
    for(int i=1 ; i<=n ; ++i)
    {
      if(vis[i]==false && i!=DELETE)
      {
        DFS(i);
        ++cnt;
      }
    }
    printf("%d\n",cnt-1);
  }
  return 0;
}

PAT:1013. Battle Over Cities (25) AC

标签:

原文地址:http://www.cnblogs.com/Evence/p/4329030.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!