[恢]hdu 2391

2011-12-20 03:52:39

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2391

题意:一个地图里,每块区域有数量不等的金子。从左上角开始每次只能向右或向下走,最多能收集到多少块金子。

mark:从右下角向左上角dp。

代码:

# include <stdio.h>


int dp[1010][1010] ;


int max(int a, int b){return a>b?a:b;}


int main ()
{
int T, n, m, i, j ;
int nCase = 1 ;
scanf ("%d", &T) ;
while (T--)
{
scanf ("%d%d", &n, &m) ;
for (i = 0 ; i <= n ; i++)
for(j = 0 ; j <= m ; j++)
dp[i][j] = 0 ;
for (i = 0 ; i < n ; i++)
for (j = 0 ; j< m ; j++)
scanf ("%d", &dp[i][j]) ;
for (i = n-1 ; i >= 0 ; i--)
for(j = m-1 ; j >= 0 ; j--)
dp[i][j] += max(dp[i+1][j], dp[i][j+1]) ;
printf ("Scenario #%d:\n", nCase++) ;
printf ("%d\n\n", dp[0][0]) ;
}
}



posted @ 2012-01-06 22:41  Seraph2012  阅读(131)  评论(0编辑  收藏  举报