NYOJ234吃土豆

来源:互联网 发布:node v6.9.4 x64.msi 编辑:程序博客网 时间:2024/04/30 05:39

题目链接: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;}


0 0
原创粉丝点击