poj解题报告——3176

来源:互联网 发布:java下载32位 编辑:程序博客网 时间:2024/06/06 01:54

        这题是一个简单的dp问题,暴力求解。

代码如下

#include<stdio.h>int dp[352][352];int dat[352][352];int max(int x,int y){return x>y?x:y;}void main(){int i,j,n,t;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=i;j++){scanf("%d",&dat[i][j]);dp[i][j]=dat[i][j];}}for(i=2;i<=n;i++){for(j=1;j<=i;j++){dp[i][j]=dp[i-1][j]+dp[i][j];if(j-1>0)dp[i][j]=max(dp[i][j],dat[i][j]+dp[i-1][j-1]);}}t=-1;for(i=1;i<=n;i++){for(j=1;j<=i;j++){if(dp[i][j]>t)t=dp[i][j];}}printf("%d\n",t);}


0 0