[恢]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]) ;
}
}