题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=171
动态规划:
d(i,j) = max{d(i-1, j), d(i, j-1)}+mp[i][j];
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> using namespace std; #define INF 0x7fffffff #define INPUT freopen("d:\\in.txt", "r", stdin); #define OUTPUT freopen("d:\\out.txt", "w", stdout); #define N 20 int mp[N][N]; int d[N][N]; int m, n; int dp(int i, int j) { || j< || i>=m || j>=n) ; ) return d[i][j]; ), dp(i-, j))+mp[i][j]; } int main() { //INPUT; while(~scanf("%d%d", &m, &n)) { ; i<m; i++){ ; j<n; j++){ scanf("%d", &mp[i][j]); } } memset(d, , sizeof(d)); printf(, n-)); } ;