/*
ID: m1590291
TASK: numtri
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string.h>
using namespace std;
/******************************************************************************************************************
最简单的DP,入门级别。
从最后一层到第一层更加简单
******************************************************************************************************************/
int a[1050][1050];
int f[1050][1050]; //为什么用 long long类型不能AC???
int main()
{
ifstream fin("numtri.in");
ofstream fout("numtri.out");
int T;
while(fin>>T)
{
memset(f,0,sizeof(f));
for(int i = 1;i <= T;i ++)
for(int j = 1;j <= i;j ++)
fin>>a[i][j];
for(int i = T;i > 0;i --){
for(int j = 1;j <= i;j++)
f[i][j] = a[i][j]+ max(f[i+1][j],f[i+1][j+1]);
}
fout<<f[1][1]<<endl;
}
return 0;
}
转载于:https://www.cnblogs.com/Jstyle-continue/p/6352030.html