数字三角形
本题主要运用贪心,让所有的点从下往上走,从n-1行往上走,每一行都加上(i-1,j)和(i-1,j-1)的最大值一直这样
直到走到1,1的点,最后输出第一个点即可;
C++ 代码
#include<bits/stdc++.h>
using namespace std;
long long n,p[510][510];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
cin>>p[i][j];
for(int i=n-1;i>=1;i--)
for(int j=1;j<=i;j++)
p[i][j]+=max(p[i+1][j],p[i+1][j+1]);
cout<<p[1][1]<<endl;
}