Related
In following contests:
本题使用记忆化搜索。
因为符文值最大为 100,并且是否能够铭刻当前符文,只与上一次铭刻的值有关。
定义搜索状态:
dfs(x,y,rest,last)
地下迷宫试炼有 n 行 m 列格子。探险者从起点走到终点,途中可以铭刻符文得分,但体力有限。
格子取值约定:−1 是墙,不能进入;0 是空通道,可以通过,没有符文;1∼100 是带符文的通道,数值为该格符文值。每次可向上下左右四格相邻的通道移动一步,不能出界、不能穿墙。每移动一步消耗 1 点体力,初始体力为 P,体力为 0 时不能再移动。
铭刻规则:
通关方式:在体力用尽之前的某一个时刻,人位于终点即可结束试炼,得分以结束那一刻已经铭刻的总和计算。可以在第一次走到终点时结束,也可以带着剩余体力继续走,稍后再回到终点结束。若在体力约束下无法到达终点,试炼失败。
请给出通关时能得到的最大得分。
第一行三个整数 n、m、P。
第二行四个整数 sx、sy、tx、ty,表示起点和终点的行列坐标,下标从 1 开始。
接下来 n 行,每行 m 个整数,给出迷宫格子的取值。
1≤n,m≤12
0≤P≤20
1≤sx,tx≤n
1≤sy,ty≤m
格子取值仅为 −1 或 [0,100] 内的整数
起点、终点保证不是墙
输出一个整数:通关的最大得分。能到达终点但未铭刻任何符文时输出 0;无法到达终点时输出 −1。
输入
3 3 4
1 1 3 3
1 10 2
-1 0 4
-1 -1 8
输出
15
说明
起点 (1,1),终点 (3,3),体力恰好够走最短的 4 步。一条路径为 (1,1)→(1,2)→(1,3)→(2,3)→(3,3),格子值 1,10,2,4,8。
若在 10 处铭刻,之后 2、4、8 都不大于 10,最多再带上起点的 1,总分为 11。跳过 10,依次铭刻 1、2、4、8,总和为 15。
另一条 4 步路径 (1,1)→(1,2)→(2,2)→(2,3)→(3,3) 的格子值为 1,10,0,4,8,即使跳过 10 也只能得到 1+4+8=13,不如 15。
输入
2 2 1
1 1 2 2
1 2
3 4
输出
-1
说明
终点相对起点至少要走 2 步,初始体力只有 1,无法到达终点,输出 −1。起点的符文不能当作通关得分。
In following contests:
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册