题目链接: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. bzoj2656 数列

    Description 小白和小蓝在一起上数学课,下课后老师留了一道作业,求下面这个数列的通项公式: A[0]=0 A[1]=1 A[2n]=A[n] A[2n+1]=A[n]+A[n+1] 小白作为 ...

  2. 服务注册发现consul之五:Consul移除失效服务的正确姿势

    spring cloud微服务不定期会出现网络请求失败的错误.于是看了下后台日志,发现有几个请求会报如下的异常: Caused by: feign.RetryableException: Connec ...

  3. 云-AWS-清单:清单列表

    ylbtech-云-AWS-清单:清单列表 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://yl ...

  4. [原]System.IO.Path.Combine 路径合并

    使用 ILSpy 工具查看了 System.IO.Path 类中的 Combine 方法 对它的功能有点不放心,原方法实现如下: // System.IO.Path /// <summary&g ...

  5. cookie讲解

    cookie:(翻译过来:小甜点) 意思是不管是谁都喜欢这个小东西 以谷歌为例: cookie:就是存放数据的东西,存放量(存储量很小,大约4KB)存放在客户端下,计算机上,应用设备上 应用场景:用户 ...

  6. MariaDB管理系统

    MariaDB管理系统 [root@c4kaichen@163 ~]# yum install mariadb[root@c4kaichen@163 ~]# yum install -y mariad ...

  7. php file_exists无效解决办法

    一:is_file 和 file_exists 的区别:当文件存在时:is_file 比 file_exists快了N倍当文件不存在时:is_file 比 file_exists慢总之一句话:file ...

  8. windows hbase installation

    In the previous post,  I have introduced how to install hadoop on windows based system. Now, I will ...

  9. php printf() 输出格式化的字符串

    php printf() 函数用于输出格式化的字符串,本文章向码农介绍php printf()函数的使用方法和基本使用实例,感兴趣的码农可以参考一下. 定义和用法 printf()函数输出格式化的字符 ...

  10. Tensorflow图像操作

    图像操作 图像基本概念 在图像数字化表示当中,分为黑白和彩色两种.在数字化表示图片的时候,有三个因素.分别是图片的长.图片的宽.图片的颜色通道数.那么黑白图片的颜色通道数为1,它只需要一个数字就可以表 ...