题目链接

题意:你有n个货物从1-n依次排列,每天可以从两侧选一个出来卖,卖的价格是当天的天数乘该货物的初始价格,问这批货物卖完的最大价格

输入:第一行n,之后是n个货物的初始价值

这道题不能用贪心做,因为可能存在右端点非常大,但其左边的数非常小, 但因为右端点太大而没被及时卖出

如:9 9 9 1 1 10

贪心:sum=9*1+9*2+9*3+1*4+1*5+10*6=123

而正解为150,也就是说这个题当前的决策会影响到后面的一些决策,不能贪心

dp[i][j]是区间i到j的货物卖完的最大价格

DP的话第一层循环长度,第二层循环左端点

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const double pi=acos(-);
  4. const int mod=1e9+;
  5. const int maxn=;
  6. const int inf=<<;
  7. typedef long long ll;
  8. int v[maxn];
  9. int dp[maxn][maxn];
  10. int main(){
  11. int n;scanf("%d",&n);
  12. for(int i=;i<=n;i++)scanf("%d",&v[i]);
  13. for(int i=;i<=n;i++)dp[i][i]=v[i]*n;
  14. for(int i=;i<=n;i++){
  15. for(int l=;(l+i-)<=n;l++){
  16. int r=l+i-;
  17. dp[l][r]=max(dp[l+][r]+(n-i+)*v[l],dp[l][r-]+(n-i+)*v[r]);
  18. }
  19. }
  20. cout<<dp[][n]<<endl;
  21. return ;
  22. }

区间DP 洛谷P2858牛奶零食的更多相关文章

  1. 洛谷P2858 奶牛零食 题解 区间DP入门题

    题目大意: 约翰经常给产奶量高的奶牛发特殊津贴,于是很快奶牛们拥有了大笔不知该怎么花的钱.为此,约翰购置了 \(N(1 \le N \le 2000)\) 份美味的零食来卖给奶牛们.每天约翰售出一份零 ...

  2. [洛谷p2858] 奶牛零食

    题目链接: 点我 题目分析: 这是什么,区间dp吗?怎么大佬都在说区间dp的样子 完蛋区间dp都不知道是啥quq 于是使用了玄学的姿势A过了这道题 设dp[i][j][0]表示第i天,左边选了j个,当 ...

  3. 洛谷 P2858 奶牛零食

    https://www.luogu.org/problemnew/show/P2858 毫无疑问区间dp. ![区间dp入门] 我们定义dp[i][j]表示从i到j的最大收益,显然我们需要利用比较小的 ...

  4. 洛谷P2858奶牛零食 题解

    题目 这个题一开始能看出来是一道动态规划的题目,但是并不知道如何写状态转移方程,但是我们可以想一想这个题应该是一道区间DP,而区间DP的特点就是状态转移方程一般跟该区间的左节点和右节点或者中间断点有关 ...

  5. 洛谷 P2858 [USACO06FEB]奶牛零食Treats for the Cows 题解

    P2858 [USACO06FEB]奶牛零食Treats for the Cows 题目描述 FJ has purchased N (1 <= N <= 2000) yummy treat ...

  6. 洛谷 P2858 [USACO06FEB]奶牛零食Treats for the Cows

    题目描述 FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for giving va ...

  7. [Noi2016]区间 BZOJ4653 洛谷P1712 Loj#2086

    额... 首先,看到这道题,第一想法就是二分答案+线段树... 兴高采烈的认为我一定能AC,之后发现n是500000... nlog^2=80%,亲测可过... 由于答案是求满足题意的最大长度-最小长 ...

  8. 树形DP 洛谷P2014 选课

    洛谷P2014 选课 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习.现在有N门功课,每门 ...

  9. 经典DP 洛谷p1880 石子合并

    https://www.luogu.org/problemnew/show/P1880 题目 题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新 ...

随机推荐

  1. oracle中 sql%rowcount 用法

    sql%rowcount用于记录修改的条数,必须放在一个更新或者删除等修改类语句后面执行,select语句用于查询的话无法使用, 当你执行多条修改语句时,按照sql%rowcount 之前执行的最后一 ...

  2. Python练习:初别Pandas

    # Pandas安装- Anaconda 安装: conda install pandas 或者pip install pandas 参考 http://pandas.pydata.org/ ## S ...

  3. spring-boot 参考链接

    http://blog.csdn.net/jsu_9207/article/details/66472096 http://blog.csdn.net/lu1005287365/article/det ...

  4. node获取当前路径的三种方法

    node提供了3种获取路径的方法  ,在当前目录下,运行node const {resolve} = require('path') console.log('__dirname : ' + __di ...

  5. OSM自建服务

    1.  安装PostgreSQL. 2.  安装PostGis(安装目录为PostgreSQL目录). 3.  安装osm2pgsql. osm2pgsql下载地址:http://customdebu ...

  6. 使用MSBuild Tools调用csproj项目文件发布网站时$(SolutionDir)宏参数值丢失为空的解决方案

    使用Visual Studio打开解决方案,对<网站项目>右键点击<发布>,一切都是正常的,所有宏都可用,宏参数值也是正确的. 而通过批处理脚本命令调用MSBuild.exe对 ...

  7. mysql 批量导入

    load data LOCAL infile 'D:/user.txt' into table userssFIELDS TERMINATED BY ',' LINES TERMINATED BY ' ...

  8. 第02节:JMS基本概念和模型

    1.JMS是什么 JMS Java Message Service,Java消息服务,是Java EE中的一个技术. 2.JMS规范 JMS定义了Java中访问消息中间件的接口,并没有机遇实现,实现J ...

  9. 五一培训 DAY1

    DAY1 枚举 例题1 题解: 例题2 题解: 例题3 题解: vis[ ]判断是否为素数,pri[ ]储存素数 例题4 题解: 例题5 题解: PS: i  <  1<<n    ...

  10. etcd v3 备份恢复

    备份数据: # ETCDCTL_API=3 etcdctl --endpoints localhost:2379 snapshot save snapshot.db 恢复数据: # ETCDCTL_A ...