地址:http://acm.hdu.edu.cn/showproblem.php?pid=1978
题意:中文。
mark:水题。可以dfs搞,也可以dp搞,此处是dp。写错下标wa了1次,忘记删调试信息ole一次。太2了。
代码:
1 # include <stdio.h> 2 3 4 # define MOD 10000 5 6 7 int a[110][110], dp[110][110] ; 8 int n, m ; 9 10 11 int calc(int x, int y) 12 { 13 int i, j, rtn = 0 ; 14 if (x == n-1 && y == m-1) return 1 ; 15 for (i = 0 ; i <= a[x][y] && i+x < n ; i ++) 16 { 17 for (j = 0 ; j <= a[x][y] - i && j+y < m ; j++) 18 { 19 if (i == 0 && j == 0) continue ; 20 rtn = (rtn + dp[x+i][y+j]) % MOD ; ; 21 } 22 } 23 return rtn ; 24 } 25 26 27 int main () 28 { 29 int T, i, j ; 30 scanf ("%d", &T) ; 31 while (T--) 32 { 33 scanf ("%d%d", &n, &m) ; 34 for (i = 0 ; i < n ; i++) 35 for (j = 0 ; j < m ; j++) 36 scanf ("%d", &a[i][j]) ; 37 for (i = n-1 ; i >= 0 ; i --) 38 for (j = m - 1 ; j >= 0 ; j--) 39 dp[i][j] = calc(i,j) ; 40 printf ("%d\n", dp[0][0]) ; 41 } 42 return 0 ; 43 }