zoukankan      html  css  js  c++  java
  • TYVJ P1088 treat Label:鞭笞人的DP

    时间: 1000ms / 空间: 131072KiB / Java类名: Main

    背景

    广东汕头聿怀初中 Train#2 Problem2

    描述

    给出长度为N的数列{A_i},每次可以从最左边或者最右边取走一个数,第i次取数得到的价值是i * A_j。求价值之和最大的取数方案。

    输入格式

        第一行,一个整数,表示数列长度N。
        接下来N行,每行一个整数,表示数列A_i。

    输出格式

    一个整数,表示最大的价值之和。

    测试样例1

    输入






    2

    输出

    43

    备注

    N <= 2000 , A_i <= 1000

    代码

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int N,f[2005][2005],a[2005],sum;
    int main(){
    //    freopen("01.txt","r",stdin);
        scanf("%d",&N);
        for(int i=1;i<=N;i++) scanf("%d",&a[i]);
        for(int i=0;i<=N;i++){
            for(int j=0;j<=N-i;j++){
                f[i+1][j+1]=max(f[i][j+1]+(i+j)*a[i],f[i+1][j]+(i+j)*a[N-j+1]);
            }
        }
        for(int i=0;i<=N;i++) sum=max(sum,f[i+1][N-i+1]); 
        printf("%d
    ",sum);
        return 0;
    }

    我是不会告诉你这是DP的,来自一个在贪心卡了2H的蒟蒻

    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
  • 相关阅读:
    HDU 3549 基础网络流EK算法 Flow Problem
    HDU 1937 F
    HDU 1937 J
    HDU 1939 HE IS OFFSIDE
    HDU 3033 组合背包变形 I love sneakers!
    分组背包
    hdu1712 分组背包 ACboy needs your help
    hdu 1714 RedField
    HDU 1709 母函数天平问题 可出现减法的情况 The Balance
    HDU 1171 Big Event in HDU 母函数
  • 原文地址:https://www.cnblogs.com/radiumlrb/p/5780658.html
Copyright © 2011-2022 走看看