zoukankan      html  css  js  c++  java
  • PAT:1013. Battle Over Cities (25) AC

    #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
    ",cnt-1);
      }
      return 0;
    }
  • 相关阅读:
    通知协议KVO的用法
    UIImageView用法
    默默的学习!
    多输入参数的方法
    一本书的摘录
    实例、局部、静态变量(java)
    分数相加的例题
    类的继承
    多线程
    单例
  • 原文地址:https://www.cnblogs.com/Evence/p/4329030.html
Copyright © 2011-2022 走看看