有人用递归做,有人用DP做,我是参考了一个人的思路写的代码AC的。
大意是从后往前推,因为从前往后是不能得到全局最优解的,而从后就可以。
Code:
1 #include<iostream>
2
3 using namespace std;
4
5 int a[102][102];
6
7 int main()
8
9 {
10
11 int i,j,k;
12
13 cin>>i;
14
15 for(j=1;j<=i;j++)
16
17 for(k=1;k<=j;k++)
18
19 cin>>a[j][k];
20
21 for(j=i-1;j>=1;j--)
22
23 for(k=1;k<=j;k++)
24
25 {
26
27 if(a[j+1][k]>a[j+1][k+1])
28
29 a[j][k]+=a[j+1][k];
30
31 else
32
33 a[j][k]+=a[j+1][k+1];
34
35 }
36
37 cout<<a[1][1]<<endl;
38
39 }
40