AcWing 898. 数字三角形
原题链接
简单
作者:
Java小码农
,
2021-07-19 10:10:13
,
所有人可见
,
阅读 144
C++ 代码
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 510,INF = 1e9;
int n;
int a[N][N],f[N][N];
int main()
{
scanf("%d",&n);
for(int i = 1;i <= n;i ++)
for(int j = 1;j <= i;j ++)
scanf("%d",&a[i][j]);
for(int i = 0;i <= n;i ++)
for(int j = 0;j <= i+1;j ++)
f[i][j] = -INF;
f[1][1] = a[1][1];
for(int i = 2;i <= n;i ++)
for(int j = 1;j <= i;j ++)
f[i][j] = max(f[i-1][j-1] + a[i][j],f[i-1][j] + a[i][j]);
int res = -INF;
for(int i = 1;i <= n;i ++) res = max(res,f[n][i]);
printf("%d\n",res);
return 0;
}