数字三角形问题
1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #include<cstdio> 5 using namespace std; 6 int a[101][101]; 7 int f[101][101]; 8 int main() 9 { 10 int n; 11 scanf("%d",&n); 12 for(int i=1;i<=n;i++) 13 { 14 for(int j=1;j<=i;j++) 15 { 16 scanf("%d",&a[i][j]); 17 } 18 } 19 memset(f,0,sizeof(f)); 20 f[1][1]=a[1][1]; 21 for(int i=2;i<=n;i++) 22 { 23 for(int j=1;j<=i;j++) 24 { 25 f[i][j]=max(f[i-1][j-1],f[i-1][j])+a[i][j]; 26 } 27 } 28 int res=0; 29 for(int i=1;i<=n;i++) 30 { 31 res=max(res,f[n][i]); 32 } 33 printf("%d\n",res); 34 return 0; 35 }