题目链接:http://poj.org/problem?id=3186

思路:

区间DP,给treat编号为1..n,状态很明显是上界i和下界j,dp[i][j]表示从下标i到下标j之间数据的最大价值。可以正向转移,从dp[1][0]开始,也可以逆向转移,从dp[i][i]开始。我这里是正向转移,状态转移方程如下:

   if(i>1&&j<n)
                dp[i][j]=max(dp[i-1][j]+(n-1-(j-i))*a[i-1],dp[i][j+1]+(n-1-(j-i))*a[j+1]);
            if(i>1&&j==n)
                dp[i][j]=dp[i-1][j]+(n-1-(j-i))*a[i-1];
            if(i==1&&j<n)
                dp[i][j]=dp[i][j+1]+(n-1-(j-i))*a[j+1];
其中的(n-1-(j-i))是age。但循环结束后的dp[i][i]并不是最终结果,还需加上n×a[i]。

代码如下:

 #include<cstdio>
#include<algorithm>
using namespace std; int n,res;
int a[],dp[][]; int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)
scanf("%d",&a[i]);
dp[][n]=;
for(int i=;i<=n;++i)
for(int j=n;j>=i;--j){
if(i>&&j<n)
dp[i][j]=max(dp[i-][j]+(n--(j-i))*a[i-],dp[i][j+]+(n--(j-i))*a[j+]);
if(i>&&j==n)
dp[i][j]=dp[i-][j]+(n--(j-i))*a[i-];
if(i==&&j<n)
dp[i][j]=dp[i][j+]+(n--(j-i))*a[j+];
}
for(int i=;i<=n;++i)
if(res<(dp[i][i]+n*a[i]))
res=dp[i][i]+n*a[i];
printf("%d\n",res);
return ;
}

poj3186(区间DP)的更多相关文章

  1. poj3186(区间dp)

    题目链接:http://poj.org/problem?id=3186 题意:给一行n个数,每次可以取出行首或者行末的数,如果第ai是第i次取出的,可以得到ai*i的收益,求最大的总收益: 思路:区间 ...

  2. 【POJ - 3186】Treats for the Cows (区间dp)

    Treats for the Cows 先搬中文 Descriptions: 给你n个数字v(1),v(2),...,v(n-1),v(n),每次你可以取出最左端的数字或者取出最右端的数字,一共取n次 ...

  3. kuangbin专题十二 POJ3186 Treats for the Cows (区间dp)

    Treats for the Cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7949   Accepted: 42 ...

  4. luogu2858奶牛零食题解--区间DP

    题目链接 https://www.luogu.org/problemnew/show/P2858 一句话题意: https://cn.vjudge.net/problem/POJ-3186#autho ...

  5. 【BZOJ-4380】Myjnie 区间DP

    4380: [POI2015]Myjnie Time Limit: 40 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 162  Solved: ...

  6. 【POJ-1390】Blocks 区间DP

    Blocks Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 5252   Accepted: 2165 Descriptio ...

  7. 区间DP LightOJ 1422 Halloween Costumes

    http://lightoj.com/volume_showproblem.php?problem=1422 做的第一道区间DP的题目,试水. 参考解题报告: http://www.cnblogs.c ...

  8. BZOJ1055: [HAOI2008]玩具取名[区间DP]

    1055: [HAOI2008]玩具取名 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1588  Solved: 925[Submit][Statu ...

  9. poj2955 Brackets (区间dp)

    题目链接:http://poj.org/problem?id=2955 题意:给定字符串 求括号匹配最多时的子串长度. 区间dp,状态转移方程: dp[i][j]=max ( dp[i][j] , 2 ...

随机推荐

  1. bzoj4385 Wilcze doły

    Description 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0.请找到最长的一段连续区间,使得该区间内所有数字之和不超过p. Input 第一 ...

  2. Spark1.6 Idea下远程调试

    使用的开发工具:scala2.10.4.Idea16.JDK8 1.导入依赖的包和源码 在下载Spark中到的导入spark的相关依赖了包和其源码.zip,相关源码的下载地址:https://gith ...

  3. 学习笔记之Visual Studio Team Services

    VSTS and TFS Documentation | Microsoft Docs https://docs.microsoft.com/en-us/vsts/index?view=vsts#pi ...

  4. [转]判断是否 Win7 且需要管理员权限

    public static void Load() { if (NeedAdmin()) { new Form().ShowDialog(); Environment.Exit(); } } publ ...

  5. [UE4]解析json数据

    正常的json对象是可以使用单引号的,但是在UE4中的json解析,不能如下使用单引号: {‘name’:'张三'} 而是要使用双引号写成: {"name":"张三&qu ...

  6. python 模块被引用多次但是里面的全局表达式总共只会执行一次

    python 模块被引用多次但是里面的全局表达式总共只会执行一次

  7. php metaphone()函数解析

    php metaphone() 函数计算字符串的 metaphone 键,本文章向码农们介绍 php metaphone() 函数的基本用法和实例,需要的码农可以参考一下本文章的方法和实例. 定义和用 ...

  8. mvc和mtv

    Java中MVC详解以及优缺点总结 概念: MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一 ...

  9. 你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

    生成对抗网络(GAN)是当今最流行的图像生成方法之一,但评估和比较 GAN 产生的图像却极具挑战性.之前许多针对 GAN 合成图像的研究都只用了主观视觉评估,一些定量标准直到最近才开始出现.本文认为现 ...

  10. ie6 双边距问题

    div 设置float和margin margin在float方向上会变成设置值的两倍 解决方法,加上css _display:inline