编程题
### 问题描述 你身处游戏世界里面,现在有一个谜题摆在你眼前。 有一个地图上有数面透光镜和障碍物,现在有一束光线是从地图的左上角向右射出。 光线可以直接透过透光镜而方向不发生改变。 现在你有一下两种操作: 1. 你可以选择耗费一点体力将透光镜变为反光镜子并且可以将光线反射到上下左右四个方向。 2. 耗费体力铲平障碍物使得光线可以继续射出。 你需要光线最终从右下角向右射出。 请问耗费最小体力是多少,如果最终无法将光线射出,请打印 $-1$。 ### 输入格式 输入的第一行包含两个整数 $n,m$,表示有 $n$ 行 $m$ 列,接下来的 $n$ 行中的每一行都包含 $m$ 个字符。 字符 '1' 到 '9' 表示障碍,其中数字表示移除障碍所需体力,字符 '#' 表示透光镜,字符 '.' 表示对应单元格为空。 ### 输出格式 输出仅一行,包含一个整数,表示消耗最小体力。如果无法将光线射出,输出 $-1$。 ### 样例输入 ```text 3 3 .#. .1. .#. ``` ### 样例输出 ```text 3 ``` ### 说明 在样例中,可以选择将仅有的两个透光镜都变为反光镜,并且将之间的障碍物铲除。 ### 评测数据规模 对于 $70$% 的评测数据,$2\leq n,m \leq 10^2$。 对于 $100$% 的评测数据,$2\leq n,m \leq 10^3$。
查看答案
赣ICP备20007335号-2