1099: 夏日弥的考研地城
Description
"拼搏一百天,我要考上西北带专!"
夏日弥看向考研地城,地城的尽头是高耸的西北带专,这个带专为他准备了一个相当牛叉的地城:
1.这个地城由 $m \times n$ 个单元格组成。
2.这个地城的左上角是夏日弥的起始入口,右下角是终点。
3.每个单元格包含一个非负整数,表示你在该单元格中的花费。你只能向右或向下移动到达终点。
4.地城中还存在一些障碍物(用 $-1$ 表示),你不能经过这些单元格。
5.一个单元格要么是一个非负整数,要么是 $-1$。
聪明的ACMer肯定不愿意看着可怜的夏日弥受苦受难吧!请你们帮助他找出通过考研地城的最少花费,当然,如果他实在通不过考研地城,就输出 $-1$ 吧!这样一来他也可以安心去南门卖手抓饼和烤冷面哩^ ^
给定一个 $m \times n$ 的网格,其中每个单元格包含一个非负整数,表示你在该单元格中的花费。你从左上角的单元格出发,只能向右或向下移动,到达右下角的单元格。网格中还存在一些障碍物(用 $-1$ 表示),你不能经过这些单元格。请计算从左上角到右下角的最小花费路径。如果没有路径可以到达终点,返回 $-1$ 。总花费包含起点和终点的花费,如果起点或终点为 $-1$ 视作不可到达。
结果可能很大,请对 $10^9+7$ 取模。
Input
第 $1$ 行输入两个整数 $m,n(1\le m,n\le 1000)$,表示网格的行数与列数。
接下来 $m$ 行每行 $n$ 个整数,其中第 $i$ 行第 $j$ 列单元格的花费为 $g_{i,j}(-1\le g_{i,j}\le10^9)$,值为非负整数表示花费,值为 $-1$ 表示障碍物。
Output
输出一个整数,表示从左上角到右下角的最小花费路径的总和。如果没有路径可以到达终点,输出 $-1$。
结果可能很大,请对 $10^9+7$ 取模。
Sample Input Copy
3 3
1 3 1
1 -1 2
4 2 1
Sample Output Copy
8
HINT
路径为 $1 \rightarrow 3 \rightarrow 1 \rightarrow 2 \rightarrow 1$,最小花费为 $8$。