题目大意:就是一个数字三角形。。
分析:见紫书动态规划讲解...
代码:
#include <cstdio>
#include <algorithm>
using namespace std;
int a[360][360], d[360];
int main() {
int n;
scanf("%d", &n);
for(int i = 0; i < n; i++)
for(int j = 0; j <= i; j++)
scanf("%d", &a[i][j]);
for(int i = n-1; i>= 0; i--) {
for(int j = 0; j <= i; j++) {
if(i == n-1) d[j] = a[i][j];
else {
d[j] = max(a[i][j]+d[j], a[i][j]+d[j+1]);
}
}
}
printf("%d\n", d[0]);
return 0;
}