#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
const int maxn=1001;
int mp[maxn][maxn],vis[maxn];
int n,m,k;
void dfs(int s)
{
vis[s]=1;//置访问位,深度递归其后续节点;
int i;
for(i=1;i<=n;i++)
{
if(vis[i]==0&&mp[s][i]>0)dfs(i);
}
}
int dfstraverse(int s)
{
memset(vis,0,sizeof(vis));
int i,cnt=0;
for(i=1;i<=n;i++)
if(mp[s][i]>0)mp[s][i]=mp[i][s]=-1;//去除与被占点连接点
vis[s]=1;//第一次调用时把该点置1表示已访问,即将该点隐藏
for(i=1;i<=n;i++)
{
if(vis[i]==0)
{
dfs(i);
cnt++;
}
}
for(i=1;i<=n;i++)
if(mp[s][i]<0)mp[s][i]=mp[i][s]=1;//下次调用前回复被占点
return cnt-1;//cnt即连通分量个数,-1后即为所需连接边数
}
int main()
{
freopen("input.txt","r",stdin);
int i;
while(scanf("%d%d%d",&n,&m,&k)!=EOF)
{
int a,b,s;
for(i=0;i<m;i++)
{
scanf("%d%d",&a,&b);
mp[a][b]=mp[b][a]=1;
}
for(i=0;i<k;i++)
{
scanf("%d",&s);
int ans=dfstraverse(s);
printf("%d\n",ans);
}
}
return 0;
}

PAT1013的更多相关文章

  1. PAT1013. Battle Over Cities(邻接矩阵、邻接表分别dfs)

    //采用不同的图存储结构结构邻接矩阵.邻接表分别dfs,我想我是寂寞了吧,应该试试并查集,看见可以用并查集的就用dfs,bfs代替......怕了并查集了 //邻接矩阵dfs #include< ...

  2. PAT---1013. Battle Over Cities (25)

    这道题目的意思是:在战争时代,如果一个城市被敌人占领了,那么和该城市相连的道路都必须关闭,我们必须把剩下的城市(即不包括被敌人占领的城市)连接起来. 举个例子,我们有3个城市,C1,C2,C3,C1和 ...

  3. 浙大pat1013题解

    1013. Battle Over Cities (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...

  4. PAT1013 数素数

    思路: 打印素数表 然后找出对应区间[m,n]中的素数 #include <iostream> #include <vector> #include <cmath> ...

  5. PAT1013: Battle Over Cities

    1013. Battle Over Cities (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...

  6. pat1013. Battle Over Cities (25)

    1013. Battle Over Cities (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...

  7. pat1013:数素数

    https://www.patest.cn/contests/pat-b-practise/1013 #include "stdio.h" #include "math. ...

  8. PAT-1013 Battle Over Cities (25 分) DFS求连通块

    It is vitally important to have all the cities connected by highways in a war. If a city is occupied ...

随机推荐

  1. Ignoring HTTPS certificates

    Our Development setups won't have valid or trusted certificates. When do you want test our webserver ...

  2. android listView Exception

    - ::-/com.tongyan.tutelage W/System.err﹕ java.text.ParseException: Unparseable date: ) - ::-/com.ton ...

  3. Flink单机版安装与wordCount

    Flink为大数据处理工具,类似hadoop,spark.但它能够在大规模分布式系统中快速处理,与spark相似也是基于内存运算,并以低延迟性和高容错性主城,其核心特性是实时的处理流数据.从此大数据生 ...

  4. PLSQL_性能优化效能跟踪工具SQL Trace分析(案例)

    2014-06-25 Created By BaoXinjian

  5. centos7编译安装nginx1.8

    安装pcre wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz tar -zxvf pcre-8. ...

  6. IIS6.0服务器完美开启Gzip压缩[转]

    转自:http://seo.qiankoo.com/731 在昨天服务器还没重装之前,这个服务器已经开启了Gzip,去年配置的时候就很波折,因为配置文件在C盘,所以重装后Gzip就没了. 今天理论上第 ...

  7. nvl

    NVL是Oracle PL/SQL中的一个函数.它的格式是NVL( string1, replace_with).它的功能是如果string1为NULL,则NVL函数返回replace_with的值, ...

  8. .NET单元测试

    原文链接:http://www.cnblogs.com/edisonchou/p/5467573.html

  9. console,和自己定义事件

    console.log这个指令是在浏览器控制台输出日志,用来调试程序 跟alert 类似 但不像alert那样会打断程序.

  10. photoshop CS 调整选择区域的大小

    网上看到说:矩形选框不能直接调整大小,如果你不想重新画一个可以利用转换路径,然后再调整.这是不对的,矩形选框是可以调整大小的,使用"变换选区"即可.   对应步骤截图如下: 1.画 ...