http://www.acmicpc.sdnu.edu.cn/problem/show/1044
打眼一看,是一个神搜,但是感觉会tle,果然不出所料,然后想了一下是DP,感觉代码不少懒得敲,于是开动脑筋用了贪心,所以果断的wa啦。内心亿万只草泥马奔腾。
#include<iostream>
#include<stdio.h>
#include<cmath>
#include<string>
#include<algorithm>
using namespace std;
int paixu[1005][1005] = { 0 };
int dp[1005][1005] = { 0 };
int main()
{
int n, m;
cin >> n >> m;
for (int i = 1; i <=n; i++)
{
for (int j = 1; j <= m; j++)
{
scanf_s("%d", &paixu[i][j]);
}
}
for (int i = 1; i < n+1; i++)
{
for (int j = 1; j < m + 1; j++)
dp[i][j] = max(dp[i-1][j-1]+paixu[i][j],dp[i][j-1]);
}
cout << dp[n][m] << endl;
system("pause");
return 0;
}