//很顯然這是一道和算法導論上裝配線上的類似的題目 可以采用類似的解法
//我們從下往上走
//對于 max【x】【y】其最大值 只能來自于 max【x-1】【y】 或 max【x-1】【y+1】
//
#include<stdio.h>
#define max(a,b) (a>b?a:b)
int max[102][102],data[102][102];
int main()
{
int n, i ,j;
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<=i;j++)
scanf("%d",&data[i][j]);
}
//剛開始 最后一行的最大值 極為其本身
for(i = n-1;i>=0;i--)
max[n-1][i] = data[n-1][i];
for(i=n-2;i>=0;i--){
for(j=0;j<=i;j++){
max[i][j]=max(max[i+1][j],max[i+1][j+1])+data[i][j];
}
}
printf("%d\n",max[0][0]);
return 0;
}
posted on 2009-08-05 17:08
付翔 閱讀(1014)
評論(2) 編輯 收藏 引用