刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

夺宝大赛

夺宝大赛的地图是一个由 n×m 个方格子组成的长方形,主办方在地图上标明了所有障碍、以及大本营宝藏的位置。参赛的队伍一开始被随机投放在地图的各个方格里,同时开始向大本营进发。所有参赛队从一个方格移动到另一个无障碍的相邻方格(“相邻”是指两个方格有一条公共边)所花的时间都是 1 个单位时间。但当有多支队伍同时进入大本营时,必将发生火拼,造成参与火拼的所有队伍无法继续比赛。大赛规定:最先到达大本营并能活着夺宝的队伍获得胜利。

假设所有队伍都将以最快速度冲向大本营,请你判断哪个队伍将获得最后的胜利。

时间限制:5000

内存限制:65535

输入

输入首先在第一行给出两个正整数 m 和 n(2 < m,n ≤ 100),随后 m 行,每行给出 n 个数字,表示地图上对应方格的状态:1 表示方格可通过;0 表示该方格有障碍物,不可通行;2 表示该方格是大本营。题目保证只有 1 个大本营。 接下来是参赛队伍信息。首先在一行中给出正整数 k(0 < k < m×n/2),随后 k 行,第 i(1 ≤ i ≤ k)行给出编号为 i 的参赛队的初始落脚点的坐标,格式为 x y。这里规定地图左上角坐标为 1 1,右下角坐标为 n m,其中 n 为列数,m 为行数。注意参赛队只能在地图范围内移动,不得走出地图。题目保证没有参赛队一开始就落在有障碍的方格里。

输出

在一行中输出获胜的队伍编号和其到达大本营所用的单位时间数量,数字间以 1 个空格分隔,行首尾不得有多余空格。若没有队伍能获胜,则在一行中输出 No winner.

样例输入

样例1:

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

样例2:

5 7
1 1 1 1 1 0 1
1 1 1 1 1 0 0
1 1 0 2 1 1 1
1 1 0 0 1 1 1
1 1 1 1 1 1 1
7
7 5
1 3
7 1
1 1
5 5
3 1
3 5

样例输出

样例1:

7 6

样例2:

No winner.

提示

样例 1 说明: 七支队伍到达大本营的时间顺次为:7、不可能、5、3、3、5、6,其中队伍 4 和 5 火拼了,队伍 3 和 6 火拼了,队伍 7 比队伍 1 早到,所以获胜。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

由于题目需要编写代码来解答,无法直接用选项形式给出答案。大致思路如下:首先读入地图和队伍信息,然后对每个队伍的移动路径进行模拟,记录每个队伍到达大本营的时间。在这个过程中需要考虑队伍的移动方向(上下左右)以及可能的火拼情况(当多个队伍同时到达大本营时)。最后根据到达时间判断获胜队伍。

解析:

这个问题可以通过模拟来解决。我们可以创建一个二维数组来表示地图,其中每个元素表示一个方格的状态(可通过、有障碍物、大本营)。然后,我们可以模拟每支队伍的移动过程,记录它们到达大本营的时间。在这个过程中,我们需要考虑队伍的移动方向(上下左右),并检查每个移动方向是否可行(即该方格是否可通过)。当队伍移动到另一个方格时,我们更新其位置并继续模拟移动过程。如果有多支队伍同时到达大本营,我们需要处理火拼的情况。在这种情况下,我们可以认为参与火拼的队伍无法继续比赛,因此需要跳过这些队伍并继续模拟其他队伍的移动过程。最后,我们找到最先到达大本营的队伍并输出其编号和到达时间。如果没有队伍能获胜,我们输出"No winner."。

创作类型:
原创

本文链接:夺宝大赛 夺宝大赛的地图是一个由 n×m 个方格子组成的长方形,主办方在地图上标明了所有障碍、以及大

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share