OpenJ_Bailian - 2760 数字三角形
https://vjudge.net/problem/OpenJ_Bailian-2760
从下往上
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int n,t;
int g[110][110];
int main()
{
while(cin>>n)
{
memset(g,0,sizeof g);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
cin>>g[i][j];
}
for(int i=n-1;i>=1;i--)
{
for(int j=1;j<=i;j++)
{
g[i][j]=max(g[i+1][j],g[i+1][j+1])+g[i][j];
}
}
cout<<g[1][1]<<endl;
}
return 0;
}
从上往下
#include <iostream>
#include<cstring>
using namespace std;
const int N=510,INF=1e9;
int n;
int f[N],a[N];
int main()
{
cin>>n;
memset(f,0,sizeof f);
cin>>f[1];
for(int i=2; i<=n; i++)
{
for(int j=1; j<=i; j++) cin>>a[j];
for(int j=i; j>=1; j--) f[j]=max(f[j-1],f[j])+a[j];
}
int res=0;
for(int i=1; i<=n; i++) res=max(res,f[i]); //最大值在第n层的某一个点取得
cout<<res<<endl;
return 0;
}
本文来自博客园,作者:斯文~,转载请注明原文链接:https://www.cnblogs.com/zhiweb/p/15483290.html

浙公网安备 33010602011771号