天梯-红色警报

5-9 红色警报   (25分)

战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。

输入格式:

输入在第一行给出两个整数N(0 <<< N ≤\le 500)和M≤\le 5000),分别为城市个数(于是默认城市从0到N-1编号)和连接两城市的通路条数。随后M行,每行给出一条通路所连接的两个城市的编号,其间以1个空格分隔。在城市信息之后给出被攻占的信息,即一个正整数K和随后的K个被攻占的城市的编号。

注意:输入保证给出的被攻占的城市编号都是合法的且无重复,但并不保证给出的通路没有重复。

输出格式:

对每个被攻占的城市,如果它会改变整个国家的连通性,则输出Red Alert: City k is lost!,其中k是该城市的编号;否则只输出City k is lost.即可。如果该国失去了最后一个城市,则增加一行输出Game Over.

输入样例:

5 4
0 1
1 3
3 0
0 4
5
1 2 0 4 3

输出样例:

City 1 is lost.
City 2 is lost.
Red Alert: City 0 is lost!
City 4 is lost.
City 3 is lost.
Game Over.
题意就是 输入一个图 然后不断的从图里删除点 如果删除后联通情况改变 就输出红警 如果联通清空不变就不必红警 如果最后一个点也不剩就输出游戏结束

本题输出有三种情况 
首先统计出初始的联通分支数l 然后每次删除点后再算联通数与初始点进行比较 
0 如果这个点一开始就是个孤立点 那么不必红警只需让最初统计的联通数-1 
1 如果这个点被删去后联通数目不变 那么不必输出红色警戒 
2 如果这个点被删去后联通情况变化 就要红警
第二种情况里 还有变化 就是 如果删去这个点后联通分支变多 那么说明一点断掉了关键点 必须红警
如果删去后联通数目变少 其实是无影响的 如果一个图 只因为删去了一个点从而联通分支数变少 
只能说明 这个点是个非原始的孤立点 那么他的连通分支就他自己 删去了也无妨 为何是个非
原始孤立点 由于原始孤立点已经在0里处理了
 深搜判联通。
#include<bits/stdc++.h>
using namespace std;
struct edge
{int t,next;
}e[5010<<1];
int head[550];
bool bok[550];//被攻占的城市标记 
bool z[550]={0}; //有没有走过
int n,m;
void dfs(int x)
{z[x]=1;for(int i=head[x];~i;i=e[i].next){int t=e[i].t;
//	cout<<x<<" "<<t<<" "<<z[t]<<bok[t]<<bok[x]<<endl;if(!z[t]&&!bok[t]&&!bok[x]){
//			cout<<t<<endl;dfs(t);}}
}int hm()
{int l=0,c=0;for(int i=0;i<n;i++)z[i]=0;for(int i=0;i<n;i++)//判断出连同块 根据后面的遍历判断联通块 {
//		cout<<i<<" "<<z[i]<<endl;if(!bok[i])c++;if(!z[i]&&!bok[i]){l++;dfs(i);}} return l;
}
int main()
{cin>>n>>m;memset(head,-1,sizeof(head));for(int i=1;i<=m;i++){int ss,ee;cin>>ss>>ee; e[i].t=ee;e[i].next=head[ss];head[ss]=i;e[i+m].t=ss;e[i+m].next = head[ee];head[ee]=i+m;}	int l=0,t,city[550];l=hm(); cin>>t;for(int i=1;i<=t;i++)cin>>city[i];for(int i=1;i<=t;i++){int p=city[i];bok[p]=1;//被攻占 int h = hm();if(head[p]==-1){l--;printf("City %d is lost.\n",p);	} else{//联通块if(h==l||h<l)printf("City %d is lost.\n",p);else if(h>l)printf("Red Alert: City %d is lost!\n",p); l=h;}if(h==0){printf("Game Over.\n",p);		break; }}return 0;
} 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1114D . Flood Fill

这道题还可以转化成最长回文串&#xff0c;实际的答案是 离散化后的数组最长回文串切成一半有几个数字&#xff0c;这些数字就是中间的数字需要对齐的对象&#xff0c;所以不用改变 #include <bits/stdc.h> using namespace std;const int maxN 5008;int n; int dp[maxN…

[Leedcode][JAVA][第287题][寻找重复数][HashSet][二分查找][快慢指针]

【问题描述】[中等] 给定一个包含 n 1 个整数的数组 nums&#xff0c;其数字都在 1 到 n 之间&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。假设只有一个重复的整数&#xff0c;找出这个重复的数。输入: [1,3,4,2,2] 输出: 2说明&#xff1a…

华南师范大学计算机学院广东录取,华南师范大学2020年广东省各批次分专业录取分数统计(含位次)...

看来广东考生也对师范类院校比较青睐&#xff0c;为什么这么说呢&#xff1f;因为前段时间&#xff0c;小编写了两篇关于广东省内师范院校(韩山师范学院、岭南师范学院)的录取情况以后&#xff0c;陆续有考生咨询华南师范大学的录取情况&#xff0c;可见师范院校是比较受考生欢…

html:(6):body标签和p标签

<body>标签&#xff0c;网页上显示的内容放在这里 还记得body标签吗&#xff0c;在上一章节我们简单介绍过&#xff1a;在网页上要展示出来的页面内容一定要放在body标签中。如下图是一个新闻文章的网页。 在浏览器中的显示效果&#xff1a; <!DOCTYPE HTML> <h…

蓝桥杯-K好数

问题描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字&#xff0c;那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K 4&#xff0c;L 2的时候&#xff0c;所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大&#xff0c;请你输出…

2019/2/12 Python今日收获

Python day12——025&#xff0c;026字典&#xff1a;当索引不好用时 1.字典&#xff1a;python唯一的一个映射类型。用键值对存储数据&#xff0c;他的标志是大括号。一个键值组合叫一个项。键的类型既可以是字符串类型也可以是整形也可以是浮点型。 如&#xff1a;dict{1:one…

[Leedcode][JAVA][第974题][和可被K整除的子数组][前缀和][HashSet]

【问题描述】[中等] 给定一个整数数组 A&#xff0c;返回其中元素之和可被 K 整除的&#xff08;连续、非空&#xff09;子数组的数目。示例&#xff1a;输入&#xff1a;A [4,5,0,-2,-3,1], K 5 输出&#xff1a;7 解释&#xff1a; 有 7 个子数组满足其元素之和可被 K 5 …

html:(7):了解hx标签和加强语气

了解<hx>标签&#xff0c;为你的网页添加标题 文章的段落用<p>标签&#xff0c;那么文章的标题用什么标签呢&#xff1f;在本节我们将使用<hx>标签来制作文章的标题。 标题标签一共有6个&#xff0c;h1、h2、h3、h4、h5、h6分别为一级标题、二级标题、三级标…

HDOJ-1257 最少拦截系统

最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 39448 Accepted Submission(s): 15465 Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺…

计算机科学1pdf,计算机科学导论1.pdf

1.(4 分) 计算机的性能指标主要是( )。A. 操作系统、磁盘容量、内存容量、主频B. 字长、运算速度、存储容量、软硬件配置C. 运算速度、显示器分辨率、打印机的配置D. 配置语言、操作系统、外部设备、运算速度纠错得分&#xff1a; 4知识点&#xff1a; 5.1 计算机硬件(三大子系…

html:(8):span标签和q标签

使用<span>标签为文字设置单独样式 这一小节讲解<span>标签&#xff0c;我们对<em>、<strong>、<span>这三个标签进行一下总结&#xff1a; 1. <em>和<strong>标签是为了强调一段话中的关键字时使用&#xff0c;它们的语义是强调。…

cs20_1-1

1. 基本特点 1.1 save computation(惰性运行) x 2 y 3 add_op tf.add(x, y) mul_op tf.multiply(x, y) useless tf.multiply(x, add_op) pow_op tf.pow(add_op, mul_op) with tf.Session() as sess:z sess.run(pow_op) 如上&#xff0c;因为sess.run(pow_op)不需要用到u…

[剑指offer][JAVA]面试题第[03]题[数组中的重复数字][HashSet]

【问题描述】[数组中的重复数字][简单] 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0&#xff5e;n-1 的范围内。数组中某些数字是重复的&#xff0c;但不知道有几个数字重复了&#xff0c;也不知道每个数字重复了几次。请找出数组中任意一个重复的…

德国超级计算机中心,德国:强化人工智能能力建设 加大高性能计算网络投资...

图片来源&#xff1a;德国马克斯普朗克智能系统研究所德国2020年更新《国家人工智能战略》&#xff0c;在原先30亿欧元基础上再增加20亿欧元支持德国人工智能研究。德国科学联席会议决定投入1.33亿欧元&#xff0c;继续加强对人工智能能力中心和“高校教育的人工智能”进行资助…

HDU-3664-Permutation Counting

Permutation Counting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1739 Accepted Submission(s): 918 Problem Description Given a permutation a1, a2, … aN of {1, 2, …, N}, we define its E-val…

html:(9):blockquote引用和br换行

<blockquote>标签&#xff0c;长文本引用 <blockquote>的作用也是引用别人的文本。但它是对长文本的引用&#xff0c;如在文章中引入大段某知名作家的文字&#xff0c;这时需要这个标签。 等等&#xff0c;上一节<q>标签不是也是对文本的引用吗&#xff1f;不…

K3CLOUD数据权限授权

1.定义角色&#xff0c;把用户放入角色内 2.设置数据规则 3.设置业务对象功能授权 转载于:https://www.cnblogs.com/RogerLu/p/10370347.html

html:(10):添加空格和hr

为你的网页中添加一些空格 在上一节的例子&#xff0c;我们已经讲解过在html代码中输入空格、回车都是没有作用的。要想输入空格&#xff0c;必须写入 。 语法&#xff1a; 在html代码中输入空格是不起作用的&#xff0c;如下代码。 在浏览中显示&#xff0c;还是没有空格效果…

NYOJ82-迷宫寻宝1

迷宫寻宝&#xff08;一&#xff09; 时间限制&#xff1a; 1000 ms | 内存限制&#xff1a; 65535 KB 难度&#xff1a; 4 描述一个叫ACM的寻宝者找到了一个藏宝图&#xff0c;它根据藏宝图找到了一个迷宫&#xff0c;这是一个很特别的迷宫&#xff0c;迷宫里有N个编过…

[剑指offer][JAVA]面试题第[04]题[二维数中的查找][数组]

【问题描述】[中等] 在一个 n * m 的二维数组中&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。请完成一个函数&#xff0c;输入这样的一个二维数组和一个整数&#xff0c;判断数组中是否含有该整数。示例:现有矩阵 matrix …