PAT1013

时间:2021-12-02 08:32:41

#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&period; Battle Over Cities&lpar;邻接矩阵、邻接表分别dfs&rpar;

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

  2. PAT---1013&period; Battle Over Cities &lpar;25&rpar;

    这道题目的意思是:在战争时代,如果一个城市被敌人占领了,那么和该城市相连的道路都必须关闭,我们必须把剩下的城市(即不包括被敌人占领的城市)连接起来. 举个例子,我们有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&colon; Battle Over Cities

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

  6. pat1013&period; Battle Over Cities &lpar;25&rpar;

    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 &lpar;25 分&rpar; DFS求连通块

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

随机推荐

  1. JS详细入门教程(上)

    首先,我们看一下DOM级别和兼容性: 之前好像在某本上看到说DOM有0级,实际上,DOM0级标准是不存在的.DOM有1.2.3三个级别.DOM1级由两个模块组成(DOM Core和DOM HTML), ...

  2. &lbrack;转&rsqb;asp三级select菜单联动(加数据库)

    '数据库结构'类别1表名称:a 字段:ID,Name 说明:ID为主键是类别1的ID值,Name为类别1的名称'类别2表名称:aa 字段:ID,aID,Name 说明:ID为主键是类别2的ID值,aI ...

  3. BZOJ2285 &colon; &lbrack;Sdoi2011&rsqb;保密

    首先通过分数规划,二分答案$mid$,将每条边边权重置为$t-mid\times s$,用DP求出终点到该点的最短路,若非正则可以更小. 如此可以计算出每个出入口的最小危险值,然后把奇点放在$S$,偶 ...

  4. 写给自己看的Linux运维基础&lpar;一&rpar; - 系统基础

    查看内核版本信息 uname -a 查看发行版本 cat /etc/issue 查看硬件配置 CPU: cat /proc/cpuinfo      more /proc/cpuinfo | grep ...

  5. bzoj1976

    终于忙完期末考试了,即将进入愉快的暑假(虽然暑假作业奇多,但好歹终于能有大量时间刷题了) 先把上次新一类最小割留下的一道题目A了复习一下: 题目看起来很复杂,实际上和bzoj2132是同一个类型的 用 ...

  6. WPF最基本的4个引用

    Windowsbase Windows基本类库 PresentationCore wpf核心类库 PresentationFramework wpf框架 System.Axml 系统类库

  7. Hadoop安装错误总结

    Master的NodeManager/DateNode未启动 日志中未出现任何错误 正常现象,如需在Master中启动可在slave文件中 slaves localhost slave01 slave ...

  8. 浅谈Java代理二:Cglib动态代理-MethodInterceptor

    浅谈Java代理二:Cglib动态代理-MethodInterceptor CGLib动态代理特点: 使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而且CGLib底层采用ASM字节码生 ...

  9. Linux基础命令---bc

    bc bc是一种算数语言,其语法和c语言类似,可以交互执行.通过命令行选项可以获得一个标准的数学库.如果请求,在处理任何文件之前定义数学库.BC从处理所有文件的代码开始.命令行中列出的文件按所列顺序排 ...

  10. c&num; 根据读取的配置信息删除某个目录及下所有文件

    #region 定时删除目录文件 /// <summary> /// 定时删除目录文件 /// northeasttycoon /// </summary> /// <p ...

相关文章