(r, c, rem),rem 为还能连续飞行的步数;初始为 k。
每次上下左右移动一步:rem-1;若落到充电站(值为 2),则把 rem 重置为 k。(r,c) 维护 best[r][c] = 到达该格子时见过的最大 rem。
若新到达的 rem <= best[r][c],则该状态被更优状态支配,直接丢弃。一家物流公司正在开发无人机配送系统。无人机需要从仓库出发,将包裹配送到指定的客户地点。配送区域被划分为一个二维网格,无人机每次可以向上、下、左、右四个方向移动一步。由于电池容量限制,无人机最多只能连续飞行k步,之后必须降落在充电站充电(如果没有充电站,则无法继续飞行)。请编写一个程序,计算无人机从起点到终点的最短路径长度。如果无法到达客户地点,返回 −1。
配送区域大小:二维矩阵行数m,列数n,m和n的取值范围[1,1000]
配送区域表示:矩阵的大小为m×n,数值代表的意义如下:0 表示可飞行的空地。1 表示障碍物(如建筑物、树木等),无人机不能通过。2 表示充电站,无人机可以在此停留并充电。
