题解 JZOJ 1350.流星雨(meteor)

本文介绍了一道名为“流星雨”的算法题,讲述了如何帮助角色贝茜在流星雨中找到安全位置的问题。题目描述了流星的坠落规律和贝茜的移动限制。通过广度优先搜索(BFS)策略,寻找从原点出发到达未被流星砸到的安全点的最短时间。如果无法找到安全路径,则输出-1。
摘要由CSDN通过智能技术生成

题目描述:

贝茜听说了一个骇人听闻的消息:一场流星雨即将袭击整个农场,由于流星体积过大,它们无法在撞击到地面前燃烧殆尽,届时将会对它撞到的一切东西造成毁灭性的打击。很自然地,贝茜开始担心自己的安全问题。以FJ牧场中最聪明的奶牛的名誉起誓,她一定要在被流星砸到前,到达一个安全的地方(也就是说,一块不会被任何流星砸到的土地)。如果将牧场放入一个直角坐标系中,贝茜现在的位置是原点,并且,贝茜不能踏上一块被流星砸过的土地。

根据预报,一共有M颗流星(1 <= M <= 50,000)会坠落在农场上,其中第i颗流星会在时刻T_i (0 <= T_i <= 1,000)砸在坐标为(X_i, Y_i) (0 <= X_i <= 300;0 <= Y_i <= 300)的格子里。流星的力量会将它所在的格子,以及周围4个相邻的格子都化为焦土,当然贝茜也无法再在这些格子上行走。

贝茜在时刻0开始行动,它只能在第一象限中,平行于坐标轴行动,每1个时刻中,她能移动到相邻的(一般是4个)格子中的任意一个,当然目标格子要没有被烧焦才行。如果一个格子在时刻t被流星撞击或烧焦,那么贝茜只能在t之前的时刻在这个格子里出现。

请你计算一下,贝茜最少需要多少时间才能到达一个安全的格子。

输入:

第1行: 1个正整数:M

第2…M+1行: 第i+1行为3个用空格隔开的整数:X_i,Y_i,以及T_i

输出:

第1行: 输出1个整数,即贝茜逃生所花的最少时间。如果贝茜无论如何都无法 在流星雨中存活下来,输出-1。

思路:

设定 v i s [ i , j ] vis[i,j] vis[i,j]表示坐标为 ( i , j ) (i,j) (i,j)的安全范围。即过了时刻 v i s [ i , j ] vis[i,j] vis[i,j]坐标为 ( i , j ) (i,j) (i,j)的点就不能再走了。
注意当点 ( i , j ) (i,j) (i,j)为安全点时, v i s [ i

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值