题目链接:https://www.luogu.com.cn/problem/P1216
题目描述:
解题思路:可以看出这是一道动态规划题目,容易得出它的每一个状态都是左上的数和右上的数中的较大数加本身的大小 (状态转移方程:a[i][j]=a[i][j]+max(a[i+1][j],a[i+1][j+1]))
AC代码:
#include<bits/stdc++.h>
using namespace std;
int ai[1005][1005];
int main()
{
int n;cin>>n;
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
cin>>ai[i][j];
}
}
for(int i=n-2;i>=0;i--)
{
for(int j=0;j<=i;j++)
ai[i][j]=max(ai[i+1][j],ai[i+1][j+1])+ai[i][j];
}
cout<<ai[0][0];
return 0;
}