您的位置:首页 > 其它

NYOJ234吃土豆

2014-04-25 14:41 323 查看
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=234

题意:

对于行和列来说是一样的 不能取i-1,i+1行(列)

因此对于列来说map[i][j]+=max(map[i][j-2],max[i][j-3]);

对于行来讲dp[i]=max(dp[i-2],dp[i-3])+max(map[i][m+1],map[i][m+2]);(每行有m列);

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int dp[510];
int map[510][510];
int main()
{
int n,m;
while(cin>>n>>m)
{
memset(dp,0,sizeof(dp));
memset(map,0,sizeof(map));
for(int i=3;i<n+3;i++)
{
for(int j=3;j<m+3;j++)
{
cin>>map[i][j];
map[i][j]+=max(map[i][j-2],map[i][j-3]);
}
}
for(int i = 3; i < n+3; i++)
dp[i] = max(dp[i-2], dp[i-3]) + max(map[i][m+1], map[i][m+2]);

cout<<dp[n+2]<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: