PAT1013
#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的更多相关文章
- PAT1013. Battle Over Cities(邻接矩阵、邻接表分别dfs)
//采用不同的图存储结构结构邻接矩阵.邻接表分别dfs,我想我是寂寞了吧,应该试试并查集,看见可以用并查集的就用dfs,bfs代替......怕了并查集了 //邻接矩阵dfs #include< ...
- PAT---1013. Battle Over Cities (25)
这道题目的意思是:在战争时代,如果一个城市被敌人占领了,那么和该城市相连的道路都必须关闭,我们必须把剩下的城市(即不包括被敌人占领的城市)连接起来. 举个例子,我们有3个城市,C1,C2,C3,C1和 ...
- 浙大pat1013题解
1013. Battle Over Cities (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...
- PAT1013 数素数
思路: 打印素数表 然后找出对应区间[m,n]中的素数 #include <iostream> #include <vector> #include <cmath> ...
- PAT1013: Battle Over Cities
1013. Battle Over Cities (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...
- pat1013. Battle Over Cities (25)
1013. Battle Over Cities (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...
- pat1013:数素数
https://www.patest.cn/contests/pat-b-practise/1013 #include "stdio.h" #include "math. ...
- 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 ...
随机推荐
- Servlet细节
Servlet细节 线程不安全的做法: * 不要在Servlet中创建成员!创建局部变量即可! * 可以创建无状态成员! * 可以创建有状态的成员,但状态必须为只读的!(不提供set方法) 1.Ser ...
- Spark on Yarn年度知识整理
大数据体系结构: Spark简介 Spark是整个BDAS的核心组件,是一个大数据分布式编程框架,不仅实现了MapReduce的算子map 函数和reduce函数及计算模型,还提供更为丰富的算子,如f ...
- Mac下配置JAVA_HOME
http://blog.csdn.net/shallowgrave/article/details/39367119 闲来无事,装个Hbase玩玩,突然发现Mac下默认安装的JDK7,没有配置JAVA ...
- Coding 初级教程(二)——上传已有项目
Coding 初级教程(二)——上传已有项目 [摘要:方针读者 :已具有 Coding.net 的账号. 本文首要先容若何把项目上传到 Coding.net 上. 分两种环境,一种是项目已归入到 gi ...
- 想直接用Windows API开发程序,你真的应该知道这些!
1,Windows数据类型. 2,Windows数据类型命名规律. 3,匈牙利表示法.
- java基础-排序
冒泡排序 选择排序 生成数组,数组元素值为1-1000
- CRM plugin 激活 停用 事件
需要注册 SetState 和 SetStateDynamecEntity
- Mingyang.net:如何获取所有的请求参数?
第一种方法:用@RequestParam. @RequestMapping(params="m=update", method=RequestMethod.POST) public ...
- C# 自定义事件(EventArgs)
1,自定义事件: public class TextChangeEventArgs : EventArgs { private string message; public TextC ...
- 配置Tomcat数据源
1.方式一:在server.xml中配置 1)tomcat安装路径下conf目录下的server.xml,在<GlobalNamingResources>和</GlobalNamin ...