题目信息:
聪明的“KK”
一个小动物“KK”正从沙漠区域(矩形)的左上角沿着向右或向下的方向往右下角跑去。
KK太聪明了,它居然能在跑的过程中会选择吃掉尽可能多的虫子线路。
你知道它吃掉多少虫子吗?
输入
第一行:N M (1≤N M≤20 0≤Xij≤500(i=1,2?.N, j=1,2?,M)
)表示沙漠是一个N*M的矩形区域
接下来有N行:每行有M个正整数,Xi1 Xi2 ……Xim 表示各位置中的虫子数(单个空格隔开)
假设“KK”只能向右走或向下走。
输出
输出有一个整数, 表示“KK”吃掉最多的虫子数。
样例输入
3 4
3 1 2 8
5 3 4 6
1 0 2 3
样例输出
24
简单的动态规划...
代码部分:
#include <stdio.h>
int dp[25][25];
int main()
{
int N, M, i, j;
scanf("%d%d", &N, &M);
for(i = 1; i <= N; i++)
{
for(j = 1; j <= M; j++)
{
scanf("%d", &dp[i][j]);
dp[i][j] += dp[i-1][j] > dp[i][j-1] ? dp[i-1][j] : dp[i][j-1];
}
}
printf("%d\n", dp[N][M]);
return 0;
}