人类正在经历一场生化危机,许多城市已经被病毒侵袭,这些城市中的人们为了避免感染病毒,计划开车逃往其他没有被病毒入侵的城市(安全城市)。有些城市之间有公路直达,有些没有。虽然他们知道哪些城市是安全的,但是不知道有没有一条安全路径能够到达安全城市(只有该路径上经过的所有城市都是安全的,该路径才是安全路径)。请你编写一个程序帮助他们判断。

输入格式:
输入第一行为三个正整数,分别表示所有城市个数m(m<=100)、安全城市个数n(m<=50)、公路个数k(k<=100)。随后一行给出n个安全城市的编号。随后k行,每一行给出两个整数,表示连接一条公路的两个城市编号。最后一行输入两个整数,分别表示当前所在城市s、目标城市d。每行整数之间都用空格分隔。

输出格式:
若目标城市已被病毒入侵(非安全城市),输出"The city i is not safe!";若目标城市为安全城市且从当前所在城市能够经过一条安全路径到达目标城市,输出"The city can arrive safely!";若目标城市为安全城市但是从当前所在城市没有一条安全路径到达目标城市,输出"The city can not arrive safely!",i为目标城市编号。

输入样例1:

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

输出样例1:

The city 4 can arrive safely!

输入样例2:

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

输出样例2:

The city 3 can not arrive safely!

输入样例3:

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

输出样例3:

The city 1 is not safe!
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int m = sc.nextInt(), n = sc.nextInt(), k = sc.nextInt();int[][] city = new int[m][m];boolean[] safe_city = new boolean[m];for (int i = 0; i < n; i++) {safe_city[sc.nextInt()] = true;}for (int i = 0; i < k; i++) {int from = sc.nextInt(), to = sc.nextInt();city[from][to] = 1;city[to][from] = 1;}int begin = sc.nextInt(), end = sc.nextInt();getpath(begin, end, city, safe_city);}public static void getpath(int begin, int end, int[][] safe_city, boolean[] city) {if (!city[end]) {System.out.println("The city " + end + " is not safe!");return;}Stack<Integer> path = new Stack<Integer>();int p = begin;path.push(p);city[p] = false;while (true) {boolean ispush = false;for (int i = 0; i < safe_city[p].length; i++) {if (safe_city[p][i] == 1 && city[i]) {path.push(i);ispush = true;city[i] = false;break;}}if (ispush) {p = path.peek();if (p == end) {System.out.println("The city " + end + " can arrive safely!");return;}} else {if (!path.isEmpty()) {path.pop();if (!path.isEmpty())p = path.peek();} else {System.out.println("The city " + end + " can not arrive safely!");return;}}}}
}

7-3 生化危机 (20 分)java版相关推荐

  1. 【PAT甲级 BigInteger】1019 General Palindromic Number (20 分) Java版 7/7通过

    题目 一开始只使用了Long,有后面四个测试点过不去,后来换了BigInteger,就通过了. 这题用Java的BigInteger做,可以操作任意长度的数字,感觉有一点取巧了. 如果C或者C++的话 ...

  2. 【PAT甲级 替换指定字符】1035 Password (20 分) Java版 4/4通过

    题目 这个题挺简单,意思就是把所有的1替换成@,0替换成%等等 读题要仔细,输出格式方面有几个小坑: 末尾不要有多余的空格.换行 如果替换了,要在第一行输出替换的条数 如果没替换,要把题目给的字符串拼 ...

  3. 【PAT甲级 U形打印】1031 Hello World for U (20 分) Java版 6/6通过

    题目 一开始没看懂"as squared as possible"和那个max不等式到底是什么意思,看了别人的解答才明白: 如果n % 3 == 0,n正好被3整除,直接n1 = ...

  4. 【PAT甲级 十进制转十三进制】1027 Colors in Mars (20 分) Java版 5/5通过

    题目 是个水题,一次通过. 这道题的大意就是:给你输入3个十进制的数,让你转换成3个十三进制数.在转换的时候,注意不足两位的要用0补全两位. 小坑 提交之前,想起来自查一下我的convert(int ...

  5. 【PAT甲级 进制转换】1019 General Palindromic Number (20 分) Java版 7/7通过

    题目 这道题可以说是非常友善了,说白了是个水题.题目没什么坑,一次通过,主要思想就是: 输入两个数:num和base 将num按照base进制转换,得到arr 判断arr是否是一个回文数,并且输出这个 ...

  6. 【PAT甲级 素数判断 进制转换】1015 Reversible Primes (20 分) Java版 4/4通过

    题目 思路: 为了提高效率,判断素数采用打表的方式 先计算100000以内的所有素数,然后如果要判断一个数是否为素数的话,直接与表中比对 题目中的意思是: 首先,判断一个数N1是否为素数 如果N1是素 ...

  7. 【PAT甲级 Date时间比较】1006 Sign In and Sign Out (20 分) Java版 5/5通过

    题目 水题. 给出几个人的进入时间和离开时间,找到他们谁是最先进入的,谁是最后离开的. 思路 用ArrayList存放所有人,然后排序,第一次按照进入时间排序,输出排序后第一个人的id,第二次按照离开 ...

  8. 【PAT甲级 ArrayList存放class】1011 World Cup Betting (20 分) Java版 3/3通过 四舍五入保留两位小数

    题目 一共给9个数,3*3,找到每行最大,按照题目要求套算式,计算就行 坑 & 心得 没啥坑,一次通过,用到的知识点是:自定义排序.四舍五入保留两位小数 DecimalFormat df = ...

  9. 【PAT甲级 sc.nextInt()的使用】1008 Elevator (20 分) Java版 9/9通过

    题目 这题已经给了电梯到达每一层的顺序,不需要自己调度电梯. 是个水题. 坑 & 心得 测试用例1 51 88 35 28 15 62 61 78 89 36 58 95 95 28 94 3 ...

最新文章

  1. maven项目project facets中是2.3调整为3.0的解决办法
  2. python输入两个整数按先大后小的顺序输出_指针变量:输入a和b两个整数,按先大后小的顺序输出a和b。...
  3. JS(JavaScript)的初了解6(更新中···)
  4. 三禧科技 工业机器人_redmi note 9 即将发布,三剑齐发! 三禧科技
  5. 新疆大学(新大)OJ xju 1006: 比赛排名 第二类斯特林数+阶乘
  6. [MEGA DEAL]完整的Java捆绑包(96%折扣)
  7. pymc3使用_使用PyMC3了解飞机事故趋势
  8. MAC地址与IP地址
  9. sqlserver 分组合并列_哪个“三人组”是历史最强组合?数据显示最均衡组合令人意外...
  10. 智慧讲台接收画板协议规划
  11. DrawerLayout 使用
  12. tesseract 配置文件
  13. 11、web端主要应用在哪些领域?
  14. Docker结合Consul实现的服务发现(一)
  15. cache性能优化总结
  16. mvvm绑定checkbox wpf_WPF(MVVM)菜单中的互斥(和可绑定)复选框
  17. Hadoop之纠删码
  18. css常见定位、居中方案
  19. C# System命名空间表
  20. 深度学习平台demo(一)- C#如何调用python文件

热门文章

  1. Chrome 操作系统
  2. 《 中国高校鄙视链大全 》
  3. 计算机合并单元格怎么操作,如何在Excel中批量合并单元格(快速一步)
  4. VIJOS P1351 棋盘制作
  5. PayPal/Stripe/Square轮询收单系统附赠服务
  6. 江苏省计算机二级Python备考经验(2020年10月考试)
  7. java计算机毕业设计web智慧医疗平台设计与实现源码+mysql数据库+系统+lw文档+部署
  8. 基础知识12.25-12.26
  9. 2022高压电工国家题库模拟考试平台操作
  10. 明星热图|王嘉尔、刘诗诗代言新品牌;王一博、周笔畅、刘恺威出席活动;吴彦祖、黄晓明演绎品牌大片...