hw20240919

hw20240919


防护设备
NxN 迷宫,左上–右下。上下左右四个方向移动,从每个格子移动到相邻格子所需要的时间是1个单位,他必须用最多 K个(也可以少于K个)单位时间到达右下格子。迷宫的每个格子都有辐射值,配送员必须穿着防护能力不低于相应辐射值的防护服,才能通过该格子。他希望知道,防护服的防护能力最少要达到多少,他才能顺利完成任务。注意:配送员需要通过迷宫的左上角和在下角,因此防护服的防护能力必须大于等于这两个格子的辐射值
解答要求
时间限制:C/C++1000ms,其他语言:2000ms
内存限制: C/C++256MB,其他语言:512MB

输入
前两行各包含一个正整数,分别对应 N 和K,后 N 行各包含 N 整数,以空格分隔,表示地图上每个位置的辐射值。2≤ N ≤ 100 。 K ≥2N - 2,以保证题目有解。所有辐射值都是非负整数,绝对值不超过 1 0 4 10^4 104
输出
一个整数,表示配送员穿着防护服的最低防抑能加。

样例1
输入:
2
2
1 3
2 1
输出:2
解释:配送员可以选择通过左下角(辐射值为2)的路线,耗费2单位时间。

样例2
输入:
5
12
0 0 0 0 0
9 9 3 9 0
0 0 0 0 0
0 9 5 9 9
0 0 0 0 0
输出:3

思路

二分辐射值+bfs,每个格子记录下到达的最小步数,剪枝:1.可以知道下一个位置到终点的最小步数,若当前步数加剩余最小步数大于k就不走这,2.可以dp知道下一个位置的右下角方块的最小辐射值,若这个最小辐射值大于当前二分的辐射值也不走,3.下一个位置走过且到其最小步数小于当前步数

在这里插入代码片
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值