AT_joi2018_yo_e 森林伐採(Deforestation)

题目描述

JOI 王国有一片广阔的森林,这片森林呈矩形,被划分为 $H$ 行 $W$ 列的格子。位于第 $i$ 行第 $j$ 列($1 \leq i \leq H, 1 \leq j \leq W$)的格子中,有 $A_{i,j}$ 棵树。特别地,森林的西北角有一个木材加工厂,没有树木,即 $A_{1,1}=0$。 没有树的区域是可以进入的。人可以从当前所在位置,向东、西、南、北方向移动到相邻的没有树木的格子。只能在森林内活动,不能走出森林。JOI 君想通过伐木,开辟一条通道,使得可以在西北角和东南角的区域之间自由来去。 伐木时,JOI 君最初位于西北角的木材加工厂。他能在 $1$ 分钟内移动到相邻的无树区域。另外,他可以在 $1$ 分钟内砍伐相邻有树区域中的一棵树。每砍下树,就必须返回西北角的木材加工厂运送这段树木。在运送过程中,JOI 君的移动速度保持不变,而且在此期间无法砍伐其他树木。 请计算完成连接西北至东南通道所需的最短时间。这里的伐木时间是指最后一次砍下的树木被运回木材加工厂的时间。

输入格式

从标准输入中读入数据,格式如下: > $H$ $W$ $A_{1,1}$ $...$ $A_{1,W}$ : $A_{H,1}$ $...$ $A_{H,W}$

输出格式

输出满足条件的最小伐木时间。

说明/提示

### 条件 - $1 \leq H \leq 30$ - $1 \leq W \leq 30$ - $(H, W) \neq (1, 1)$ - $0 \leq A_{i,j} \leq 10000$ ($1 \leq i \leq H, 1 \leq j \leq W$) - $A_{1,1} = 0$ ### 子任务 1 \[15 分\] - $1 \leq H \leq 5$ - $1 \leq W \leq 5$ ### 子任务 2 \[28 分\] - $A_{i,j} \leq A_{i,j+1}$ ($1 \leq i \leq H, 1 \leq j \leq W-1$) - $A_{i,j} \leq A_{i+1,j}$ ($1 \leq i \leq H-1, 1 \leq j \leq W$) ### 子任务 3 \[57 分\] - 无任何额外限制 ### 样例解释 1 用 $(i, j)$ 表示第 $i$ 行第 $j$ 列的区域。首先,砍倒 $(1, 2)$ 位置的树,需要 $1$ 分钟。接着,砍掉 $(1, 3)$ 的所有树。每砍一棵树,从 $(1, 1)$ 出发往东走 $1$ 步到 $(1, 3)$ 进行砍伐,再折返回 $(1, 1)$,花费 $3$ 分钟,总共 $6$ 分钟。随后,前往 $(2, 3)$ 砍树,每棵树要花 $5$ 分钟(从 $(1, 1)$ 向东走 $2$ 步到 $(2, 3)$ 砍完树,再向西走 $2$ 步返回),总共 $25$ 分钟。因此,最短伐木时间为 $1 + 6 + 25 = 32$ 分钟。这是无法减少的时间,所以输出 $32$。 ### 样例解释 2 只需砍掉在 $(2, 5)$ 的树。 ### 样例解释 3 首先砍掉 $(1, 2)$ 的树,然后砍掉 $(2, 5)$ 的树。 **本翻译由 AI 自动生成**