金币馅饼

金币馅饼

https://ac.nowcoder.com/acm/contest/6173/E

按照列枚举,根据题意可知,每列更新过一次之后,这列就不会再更新;保证了无后效性;
注意有些点是走不到的,不能用这些点更新别的点;
dp[i][j]表示到达第i行第j列的金币数量

#include<bits/stdc++.h>
using namespace std;
const int maxn=200;
int dp[maxn][maxn],mp[maxn][maxn];
int r,c;
int main()
{
    cin>>r>>c;
    for(int i=1;i<=r;i++)
    {
        for(int j=1;j<=c;j++)
            cin>>mp[i][j];
    }

    memset(dp,-1,sizeof(dp));  dp[1][1]=0;
    for(int j=1;j<=c;j++)//列
    {
        for(int i=1;i<=r;i++)//行
        {
            dp[i][j]=max(max(dp[i][j],dp[i+1][j-1]),max(dp[i-1][j-1],dp[i][j-1]));
            if(dp[i][j]!=-1) dp[i][j]+=mp[i][j];//如果==-1,说明走不到,!=-1说明能到达
        }
    }
    cout<<dp[r][c];
}
全部评论

相关推荐

10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务