AcWing 898. 数字三角形
原题链接
简单
作者:
cristiajay
,
2021-03-10 11:55:33
,
所有人可见
,
阅读 264
#include<iostream>
#include<climits>
using namespace std;
const int N=510;
int g[N][N];
int f[N][N];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
cin>>g[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
if(j==1) f[i][j]=f[i-1][j] + g[i][j];
else if(j==i) f[i][j]=f[i-1][j-1] + g[i][j];
else
f[i][j]=max(f[i-1][j-1]+g[i][j],f[i-1][j]+g[i][j]);
int maxd=-INT_MAX;
for(int i=1;i<=n;i++)
if(f[n][i]>maxd) maxd=f[n][i];
cout<<maxd<<endl;
return 0;
}