poj 1163 数塔

#include<stdio.h>
#include<string.h>
#define N 110
int dp[N][N];
int a[N][N];
int Max(int v,int vv) {
return v>vv?v:vv;
}
int main() {
    int n,i,j,k;
    while(scanf("%d",&n)!=EOF) {
   for(i=1;i<=n;i++)
   for(j=1;j<=i;j++)
    scanf("%d",&a[i][j]);
  memset(dp,0,sizeof(dp));
  for(i=n;i>=1;i--)
    for(j=1;j<=i;j++)
    dp[i][j]=Max(dp[i+1][j],dp[i+1][j+1])+a[i][j];
  printf("%d\n",dp[1][1]);
    }
return 0;}

posted @ 2015-02-06 16:21  HYDhyd  阅读(129)  评论(0编辑  收藏  举报