ZSTU1362-数字三角形

http://acmpj.zstu.edu.cn/JudgeOnline/showproblem?problem_id=1362

经典DP教学专用。。。

#include<cstdio>
#include<cstring>
#include<algorithm>
#define MAXN 102
using namespace std;
int dp[MAXN][MAXN],a[MAXN][MAXN];
int main(void)
{
    int n,i,j;
    while(scanf("%d",&n),n)
    {
        memset(dp,0,sizeof(dp));
        for(i=1;i<=n;i++)
           for(j=1;j<=i;j++)
              scanf("%d",&a[i][j]);
        for(j=1;j<=n;j++) 
           dp[n][j]=a[n][j];
        for(i=n-1;i>=1;i--)
           for(j=1;j<=i;j++)
              dp[i][j]=a[i][j]+max(dp[i+1][j],dp[i+1][j+1]);
        printf("%d\n",dp[1][1]);
    }
    return 0;
}
posted @ 2012-08-29 12:03  Yogurt Shen  阅读(259)  评论(0编辑  收藏  举报