标签:
(代码并不是很长 这道题是队友写的, 思路是:读入每个数以后 在这个数的位置上 存入从起点到这个点 的最大的值 , 最后右下角的的那个值就是结果)
输出有一个整数, 表示“KK”吃掉最多的虫子数。
3 4
3 1 2 8
5 3 4 6
1 0 2 3
24
1≤ N M ≤ 20 0≤Xij≤ 500 (i=1,2„.N, j=1,2„,M)
假设“KK”只能向右走或向下走。
1 #include<stdio.h> 2 #include<string.h> 3 #define N 30 4 #define max(a, b)(a > b ? a : b) 5 int dp[N][N]; 6 int main() 7 { 8 int m, n, i, j, x; 9 while(scanf("%d%d", &m, &n) != EOF) 10 { 11 memset(dp,0,sizeof(dp)); 12 for(i = 0 ; i < m ; i++) 13 { 14 for(j = 0 ; j < n ; j++) 15 { 16 scanf("%d", &dp[i][j]); 17 if(i==0&&j!=0) 18 dp[i][j] += dp[i][j-1]; 19 else if(j==0&&i!=0) 20 dp[i][j] += dp[i-1][j]; 21 else 22 dp[i][j] += max(dp[i-1][j],dp[i][j-1]); 23 } 24 } 25 printf("%d\n", dp[i-1][j-1]); 26 } 27 return 0; 28 }
标签:
原文地址:http://www.cnblogs.com/yishilin/p/4476566.html