区间DP 洛谷P2858牛奶零食
题意:你有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的话第一层循环长度,第二层循环左端点
#include <bits/stdc++.h>
using namespace std;
const double pi=acos(-);
const int mod=1e9+;
const int maxn=;
const int inf=<<;
typedef long long ll;
int v[maxn];
int dp[maxn][maxn];
int main(){
int n;scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d",&v[i]);
for(int i=;i<=n;i++)dp[i][i]=v[i]*n;
for(int i=;i<=n;i++){
for(int l=;(l+i-)<=n;l++){
int r=l+i-;
dp[l][r]=max(dp[l+][r]+(n-i+)*v[l],dp[l][r-]+(n-i+)*v[r]);
}
}
cout<<dp[][n]<<endl;
return ;
}
区间DP 洛谷P2858牛奶零食的更多相关文章
- 洛谷P2858 奶牛零食 题解 区间DP入门题
题目大意: 约翰经常给产奶量高的奶牛发特殊津贴,于是很快奶牛们拥有了大笔不知该怎么花的钱.为此,约翰购置了 \(N(1 \le N \le 2000)\) 份美味的零食来卖给奶牛们.每天约翰售出一份零 ...
- [洛谷p2858] 奶牛零食
题目链接: 点我 题目分析: 这是什么,区间dp吗?怎么大佬都在说区间dp的样子 完蛋区间dp都不知道是啥quq 于是使用了玄学的姿势A过了这道题 设dp[i][j][0]表示第i天,左边选了j个,当 ...
- 洛谷 P2858 奶牛零食
https://www.luogu.org/problemnew/show/P2858 毫无疑问区间dp. ![区间dp入门] 我们定义dp[i][j]表示从i到j的最大收益,显然我们需要利用比较小的 ...
- 洛谷P2858奶牛零食 题解
题目 这个题一开始能看出来是一道动态规划的题目,但是并不知道如何写状态转移方程,但是我们可以想一想这个题应该是一道区间DP,而区间DP的特点就是状态转移方程一般跟该区间的左节点和右节点或者中间断点有关 ...
- 洛谷 P2858 [USACO06FEB]奶牛零食Treats for the Cows 题解
P2858 [USACO06FEB]奶牛零食Treats for the Cows 题目描述 FJ has purchased N (1 <= N <= 2000) yummy treat ...
- 洛谷 P2858 [USACO06FEB]奶牛零食Treats for the Cows
题目描述 FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for giving va ...
- [Noi2016]区间 BZOJ4653 洛谷P1712 Loj#2086
额... 首先,看到这道题,第一想法就是二分答案+线段树... 兴高采烈的认为我一定能AC,之后发现n是500000... nlog^2=80%,亲测可过... 由于答案是求满足题意的最大长度-最小长 ...
- 树形DP 洛谷P2014 选课
洛谷P2014 选课 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习.现在有N门功课,每门 ...
- 经典DP 洛谷p1880 石子合并
https://www.luogu.org/problemnew/show/P1880 题目 题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新 ...
随机推荐
- log4net 写入 mongodb+Mongodb记录日志
项目里面需要记录大量的日志,为了方便分析,也是为了方便开发人员远程查询日志,可以把日志写入MongoDB. 1.先上Log4net配置 <?xml version="1.0" ...
- C# 读取xml——XmlReader和XElement
1.有些xml文件头部有DTD,程序解析的时候会报错 如:其他信息: 打开外部 DTD“file:///E:/PM数据/MeContext=CDF2775/MeasDataCollection.dtd ...
- IT题库9-线程池的概念和原理
在什么情况下使用线程池? 1.单个任务处理的时间比较短:2.需要处理的任务的数量大: 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销.2.如不使用线程池,有可能造成系统创建 ...
- MyBatis探究-----动态SQL详解
1.if标签 接口中方法:public List<Employee> getEmpsByEmpProperties(Employee employee); XML中:where 1=1必不 ...
- SynchronousQueueDemo
1.ArrayDeque, (数组双端队列) 2.PriorityQueue, (优先级队列) 3.ConcurrentLinkedQueue, (基于链表的并发队列) 4.DelayQueue, ( ...
- RSA非对称加密,公钥加密/私钥解密
非对称加密 package test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFound ...
- 聊天斗图神器aidou mac中文版
aidou mac中文版是mac上一款专为斗图设计的聊天斗图神器,让您在聊天的时候不怕没有表情用,炫酷的表情即时更新,让您每时每刻都有新表情用!一键下载的表情包!小编现为您带来aidou斗图神器免费版 ...
- dict字典的一些优势和劣势
01. 键必须是可散列的一个可散列的对象必须满足以下要求. (1) 支持 hash() 函数,并且通过 __hash__() 方法所得到的散列值是不变的. (2) 支持通过 __eq__() 方法来检 ...
- GitLab本地、远程更新已经fork的项目
单用IDEA无法做到,必须配合使用Git命令行才能做到,而且是先从原作者项目更新本地库,再从本地库push到自己远程fork项目,非常坑逼. 1.到项目clone的根目录右键Git Bash,先查看远 ...
- SQL实践遇到的知识点
聚集函数count() count()统计元组的个数,即行数 count(0).count(1)与count(*)的执行效率是一样的 count(column)与count(*) 如果column中含 ...