简单的动态规划题
状态转移方程:data[i][j]=max(data[i+1][j], data[i+1][j+1])+data[i][j]
最后的data[0][0]即为结果
#include<stdio.h>
#include<iostream>
using namespace std;
int data[100][100];
int main()
{
int rows;
//读入数据
cin>>rows;
for(int i=0; i<rows; ++i)
for(int j=0; j<=i; ++j)
cin>>data[i][j];
//计算最大和值
for(int i=rows-2; i>=0; --i)
for(int j=0; j<=i; ++j)
{
data[i][j] += max(data[i+1][j], data[i+1][j+1]);
}
cout<<data[0][0]<<endl;
return 0;
}