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

题意:第一个数是N,接下来N个数,每次只能从队列的首或者尾取出元素。

ans=每次取出的值*出列的序号。求ans的最大值。

样例 :

input:5

     1 2 1 5 2

output:43

思路:区间dp,用两个指针i和j代表区间,dp[i][j]表示这个区间的最大值。

///最开始想想着每次拿值最小的就好了,因为之前没接触过区间dp,就这样naive的交了,意料之中的WA了。

///找到一个范例 eg:1000001  1000002 1000003 1000004 1000005  1 2 3 4 5 6 7 8 9 1000010 这个如果,诶次取最小的得到的就不是最大值

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;int a[2005];
int dp[2005][2005];int main()
{int n;while(cin>>n){for(int i=1; i<=n; i++)cin>>a[i];memset(dp,0,sizeof(dp));for(int i=1; i<=n; i++)dp[i][i]=a[i]*n;for(int l=1; l<n; l++){for(int i=1; i+l<=n; i++){int j=i+l;dp[i][j]=max((dp[i+1][j]+a[i]*(n-l)),(dp[i][j-1]+a[j]*(n-l)));}}cout<<dp[1][n]<<endl;}return 0;
}

转载于:https://www.cnblogs.com/a-clown/p/5993349.html

poj3186 Treats for the Cows(区间)相关推荐

  1. poj 3186 Treats for the Cows (区间dp)

    题意:给你一个序列,每次只能从头或为取数,然后乘以这是第几个数,最后加和,是加和最大 思路:假设长度最开始是1,然后依次枚举长度,以及起点,dp[i][j]是又里面的两端点扩出来的(ps:代码不是这么 ...

  2. 动态规划训练20 [Treats for the Cows POJ - 3186 ]

    Treats for the Cows POJ - 3186 简单的区间DP,就不解释了. #include<iostream> #include<cstdio> using ...

  3. P2858 [USACO06FEB]Treats for the Cows G/S 题解

    emmmmmm,第二篇文章,多多写文章,好好掌握知识! 前言 原本在educoder上刷题,刷到[粉刷匠]一题,使用区间DP来做的.自己之前曾经小部分刷过背包DP的题目,对于区间DP还是知之甚少.在稍 ...

  4. Treats for the Cows

    问题描述 Description FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money f ...

  5. [USACO06FEB]Treats for the Cows G/S奶牛零食(区间dp)

    洛谷 acwing #include <bits/stdc++.h> #include <iostream> #include <cstring> #include ...

  6. POJ 3186Treats for the Cows(区间DP)

    题目链接:http://poj.org/problem?id=3186 题目大意:给出的一系列的数字,可以看成一个双向队列,每次只能从队首或者队尾出队,第n个出队就拿这个数乘以n,最后将和加起来,求最 ...

  7. BZOJ1652 [Usaco2006 Feb]Treats for the Cows

    蒟蒻许久没做题了,然后连动规方程都写不出了. 参照iwtwiioi大神,这样表示区间貌似更方便. 令f[i, j]表示i到j还没卖出去,则 f[i, j] = max(f[i + 1, j] + v[ ...

  8. POJ - 3186 Treats for the Cows DP

    传送门 乍一看与cf的某道题很相似,做了半天的贪心,然后是个二维dp. 这道题难的点在于你无法从最先取的值推到最后取的值,只能从内往外推.如果能看出来这点,其实就不难,但是很难想. 一开始dp[i][ ...

  9. POJ 3186Treats for the Cows (区间DP)

    详见代码 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 using nam ...

最新文章

  1. 零基础AJAX入门(含Demo演示源文件)
  2. Codeforces 766E
  3. Java编程程序异常处理方法
  4. html 右边是iframe 左右结构_站点的内链优化和一些常用的结构优化方法
  5. 给MM修电脑的三个步骤
  6. dnn305的一个bug
  7. 【LTspice仿真软件】如何从官网下载软件和入门到精通的教程
  8. ajaxSubmit()上传
  9. Selenium调用使用360浏览器,QQ浏览器,遨游浏览器,猎豹浏览器,Chromium
  10. php下载excel乱码,如何解决php下载excel乱码的问题
  11. PLC扩展模块西门子smart200PLC扩展RS485modbus以太网模块
  12. 使用wifi网卡笔记1----网卡选型、开发环境搭建、内核配置
  13. 计算机网络云怎么连接网络设置方法,华为云电脑如何连网,华为云电脑使用教程...
  14. autoJS pro-手机自动化脚本(douyin App模拟人工操作点赞、评论、收藏、转发)
  15. 学习1368个单词 - 有关物和人的名词
  16. 【评测】SUPRAcap 100囊式深层过滤器 泽平科技一级代理
  17. 北大计算机陈鹏,陈鹏(北大教授)
  18. 经典兔子问题java解决
  19. 三菱伺服放大器内部故障及处理方法
  20. 计世网:IT人员秘密思考的十件事情

热门文章

  1. c/c++面试试题(四)
  2. linux input/output error
  3. [react-router] 请你说说react的路由是什么?
  4. [react] 为什么说React中的props是只读的?
  5. React开发(176):导出所有接口供使用
  6. React开发(175):注意在回调里面重新渲染列表
  7. Taro+react开发(82):设置默认属性
  8. javascript学习系列(13):数组中的concat方法
  9. 前端学习(3283):立即执行函数二
  10. [css] 在固定宽度的div下,怎么让字体自适应大小,不超出宽度,也不要换行