hdu 2845

超时代码:dpr[i]=max(dpr[j])+a[i],1<=j<i-1
//超时。。。。 
#include<iostream>
#include<limits.h>
using namespace std;

int M,N,res;
int i,j,k,m;
int column[200005];
int row[200005];
int dpc[200005];
int dpr[200005];

int main(){
    while(cin>>M>>N){
        for(i=1;i<=M;i++){
            int max;
            for(j=1;j<=N;j++){
                cin>>column[j];
                dpc[j]=column[j];
                if(j==1)
                    max=column[1];
                else{
                    for(m=1;m<j-1;m++){
                        if(dpc[j]<dpc[m]+column[j])
                            dpc[j]=dpc[m]+column[j];
                    }
                    if(max<dpc[j])
                        max=dpc[j];
                }
            }
            row[i]=dpr[i]=max;
            if(i==1)
                res=dpr[1];
            else{
                for(k=1;k<i-1;k++){
                    if(dpr[i]<dpr[k]+row[i])
                        dpr[i]=dpr[k]+row[i];
                }
                if(res<dpr[i])
                    res=dpr[i];
            }
       }
       cout<<res<<endl;
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值