BZOJ 1668 馅饼里的财富

Posted on 2017-01-03 16:37  ziliuziliu  阅读(151)  评论(0编辑  收藏  举报

RT.

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,tab[105][105],dp[105][105],ans=0;
int main()
{
    scanf("%d%d",&n,&m);
    for (int i=1;i<=n;i++)
        for (int j=1;j<=m;j++)
            scanf("%d",&tab[i][j]);
    for (int j=1;j<=m;j++)
        for (int i=1;i<=n;i++)
        {
            if (i>j) continue;
            dp[i][j]=dp[i][j-1];
            if (i-1) dp[i][j]=max(dp[i][j],dp[i-1][j-1]);
            if (i+1<=n) dp[i][j]=max(dp[i][j],dp[i+1][j-1]);
            dp[i][j]+=tab[i][j];
        }
    printf("%d\n",dp[n][m]);
    return 0;
}