P1508 Likecloud-吃、吃、吃

数字金字塔3条路 f[i][j]=max(max(f[i-1][j],f[i-1][j-1]),f[i-1][j+1])+a[i][j];

#include<bits/stdc++.h>
using namespace std;
const int INF=10000000;
int mp[205][205];
int dp[205][205];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
    for(int j=1;j<=m;j++)
        scanf("%d",&mp[i][j]);
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
    dp[i][j]=max(dp[i-1][j-1],max(dp[i-1][j],dp[i-1][j+1]))+mp[i][j];
}
int x=n;
int y=m/2+1;
cout<<max(dp[x][y],max(dp[x][y-1],dp[x][y+1]))<<endl;
    return 0;
}

  

原文地址:https://www.cnblogs.com/ttttttttrx/p/9885955.html