动态规划:
#include<iostream>
#include<fstream>
using namespace std;
int main(){
int n;
int a[101][101] = {0}, max[101][101] = {0};
ifstream input("input.txt");
ofstream output("output.txt");
input >> n;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= i; j++)
input >> a[i][j];
for(int i = 1; i <= n; i++)
max[n][i] = a[n][i];
for(int i = n - 1; i >= 1; i--){
for(int j = 1; j <= i; j++){
if(max[i + 1][j] > max[i + 1][j + 1]){
max[i][j] = a[i][j] + max[i + 1][j];
}else{
max[i][j] = a[i][j] + max[i + 1][j + 1];
}
}
}
output << max[1][1];
input.close();
output.close();
return 0;
}
1万+

被折叠的 条评论
为什么被折叠?



