“Rescue(营救),ZOJ1649”的一种解法和疑惑

本文介绍了ZOJ1649题目的背景和解题思路,主要涉及Angel的朋友如何在给定的地图中通过BFS算法寻找营救Angel的最短时间。内容包括题目描述、输入输出格式、算法实现及程序解答。同时,文章提出了关于使用深度优先算法的可行性、INT_MAX替换LGMN导致错误的原因以及BFS实现中if语句的疑问,期待进一步讨论。
摘要由CSDN通过智能技术生成

1.1题目编号:ZOJ1649

详见:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1649

1.2题目描述:

Angel 被MOLIGPY 抓住了,她被关在监狱里。监狱可以用一个N×M 的矩阵来描述,1<N, M≤200。监狱由N×M 个方格组成,每个方格中可能为墙壁、道路、警卫、Angel 或Angel 的朋友。

Angel 的朋友想去营救Angel。他的任务是接近Angel。约定“接近Angel”的意思是到达Angel被关的位置。如果Angel 的朋友想到达某个方格,但方格中有警卫,那么必须杀死警卫,才能到达这个方格。假定Angel 的朋友向上、下、左、右移动一步用时为1 个单位时间,杀死警卫用时也为1 个单位时间。假定Angel 的朋友是如此强壮,可以杀死所有的警卫。你的任务是计算Angel 的朋友接近Angel 至少需要多长时间,只能向上、下、左、右移动,而且墙壁不能通过。

1.3输入描述

输入文件中包含多个测试数据。每个测试数据的第1 行为两个整数N和M,接下来有N行,每行有M个字符:"."代表道路,"a"代表Angel,"r"代表Angel的朋友,"#"代表墙壁,"x"代表警卫(注意,每个测试数据中字符"a"和"r"均只有一个)。输入数据一直到文件尾。

1.4输出描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值