想要最大化从起点到终点的所有路径中,路径上各位置与最近危险源的曼哈顿距离的最小值。假设我们设定距离为 d ,则与任意一个危险源的距离小于 d 的点都可以看成不可走的点。所以二分这个 d ,然后 check 是否满足要求。
如果 d 满足,那么 d−1 必然满足,但是 d+1 不一定满足,所以这部分就具有单调性,那么通过二分答案来解决该问题就具有了正确性。
在一张 R 行 C 列的网格地图上分布着 K 个“危险源”,行列编号均从 1 开始。一位移动者需要从起点 (a1,b1) 前往终点 (a2,b2)。他每次可以向上、下、左、右四个方向之一移动一格,但不能走出地图边界。他希望规划一条路径,使得路径上经过的每一个位置都尽可能远离所有危险源。换句话说,他希望最大化整条路径上「各位置与最近危险源的曼哈顿距离」的最小值。
两个格子 (x1,y1) 与 (x2,y2) 的曼哈顿距离定义为 ∣x1−x2∣+∣y1−y2∣。
若无论怎样移动都会经过某个危险源所在的格子(此时最近距离为 0),则答案视为 0。请你计算该最小值的最大可能值。
数据约束:
500,且格子总数 RimesC≥3。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册