首页 > 其他 > 详细

【HDOJ】1978 How many ways

时间:2014-04-29 23:21:30      阅读:580      评论:0      收藏:0      [点我收藏+]

DFS。

bubuko.com,布布扣
 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 #define MAXNUM 105
 5 
 6 int map[MAXNUM][MAXNUM], ways[MAXNUM][MAXNUM], n, m;
 7 
 8 int dfs(int x, int y) {
 9     int i, j, way=0;
10 
11     if (ways[x][y])
12         return ways[x][y];
13 
14     for (i=0; i<=map[x][y]; ++i) {
15         for (j=0; i+j<=map[x][y]; ++j) {
16             if (i==0 && j==0)
17                 continue;
18             if (x+i>=n || y+j>=m)
19                 continue;
20             way += dfs(x+i, y+j);
21             if (way >= 10000)
22                 way %= 10000;
23         }
24     }
25 
26     ways[x][y] = way;
27 
28     return way;
29 }
30 
31 int main() {
32     int t;
33     int i, j;
34 
35     scanf("%d", &t);
36 
37     while (t--) {
38         scanf("%d %d", &n, &m);
39         memset(ways, 0, sizeof(ways));
40         for (i=0; i<n; ++i)
41             for (j=0; j<m; ++j)
42                 scanf("%d", &map[i][j]);
43         ways[n-1][m-1] = 1;
44         i = dfs(0, 0);
45         printf("%d\n", i);
46     }
47 
48     return 0;
49 }
bubuko.com,布布扣

 

【HDOJ】1978 How many ways,布布扣,bubuko.com

【HDOJ】1978 How many ways

原文:http://www.cnblogs.com/bombe1013/p/3696811.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!