luogu2569 [SCOI2010]股票交易
题解看这里
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int t, maxp, w, dp[2005][2005], qaq[2005], haq, taq, ap, bp, as, bs, ans;
int main(){
cin>>t>>maxp>>w;
memset(dp, 128, sizeof(dp));
for(int i=1; i<=t; i++){
scanf("%d %d %d %d", &ap, &bp, &as, &bs);
for(int j=0; j<=as; j++)
dp[i][j] = -1 * j * ap;
for(int j=0; j<=maxp; j++)
dp[i][j] = max(dp[i][j], dp[i-1][j]);
if(i<=w) continue;
haq = 1; taq = 0;
for(int j=0; j<=maxp; j++){
while(haq<=taq && qaq[haq]<j-as) haq++;
while(haq<=taq && dp[i-w-1][qaq[taq]]+qaq[taq]*ap<=dp[i-w-1][j]+j*ap) taq--;
qaq[++taq] = j;
if(haq<=taq) dp[i][j] = max(dp[i][j], dp[i-w-1][qaq[haq]] + qaq[haq] * ap - j * ap);
}
haq = 1; taq = 0;
for(int j=maxp; j>=0; j--){
while(haq<=taq && qaq[haq]>j+bs) haq++;
while(haq<=taq && dp[i-w-1][qaq[taq]]+qaq[taq]*bp<=dp[i-w-1][j]+j*bp) taq--;
qaq[++taq] = j;
if(haq<=taq) dp[i][j] = max(dp[i][j], dp[i-w-1][qaq[haq]] + qaq[haq] * bp - j * bp);
}
}
for(int i=0; i<=maxp; i++)
ans = max(ans, dp[t][i]);
cout<<ans<<endl;
return 0;
}
luogu2569 [SCOI2010]股票交易的更多相关文章
- 1855: [Scoi2010]股票交易[单调队列优化DP]
1855: [Scoi2010]股票交易 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1083 Solved: 519[Submit][Status] ...
- 【BZOJ1855】[Scoi2010]股票交易 DP+单调队列
[BZOJ1855][Scoi2010]股票交易 Description 最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,lxhgww预 ...
- 洛谷P2569 [SCOI2010]股票交易
P2569 [SCOI2010]股票交易 题目描述 最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,lxhgww预测到了未来T天内某只股 ...
- BZOJ 1855: [Scoi2010]股票交易(DP+单调队列)
1855: [Scoi2010]股票交易 Description 最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,lxhgww预测到了未 ...
- [luogu] P2569 [SCOI2010]股票交易 (单调队列优化)
P2569 [SCOI2010]股票交易 题目描述 最近 \(\text{lxhgww}\) 又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,\(\te ...
- 单调队列优化DP || [SCOI2010]股票交易 || BZOJ 1855 || Luogu P2569
题面:P2569 [SCOI2010]股票交易 题解: F[i][j]表示前i天,目前手中有j股的最大收入Case 1:第i天是第一次购买股票F[i][j]=-j*AP[i]; (1<=j< ...
- [SCOI2010]股票交易(单调队列优化dp)
[SCOI2010]股票交易 题目描述 最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,lxhgww预测到了未来T天内某只股票的走势,第 ...
- [bzoj1855][Scoi2010]股票交易_动态规划_单调队列
股票交易 bzoj-1855 Scoi-2010 题目大意:说不明白题意系列++...题目链接 注释:略. 想法:这个题还是挺难的. 动态规划没跑了 状态:dp[i][j]表示第i天手里有j个股票的最 ...
- [SCOI2010]股票交易
题目大意: 网址:https://www.luogu.org/problemnew/show/P2569 大意:在接下来的T天中,每天股票有一个买入价格Api与卖出价格Bpi. 同时,每天买入股票数与 ...
随机推荐
- 移动端 Web 网页调试技巧
原文出处: 盛瀚钦 本文主要列举了调试本地网页.查看测试环境网页的各种方法,涵盖了PC.iPad.移动端的调试技巧. 本文的不足之处在于,小溪里暂时还没有找到调试位于微信中和安卓各国产浏览器上的网页. ...
- js去掉字符串前后以及中间的空格
p['bank_card'] = p['bank_card'].replace(/(^\s+)|(\s+$)/g,"");p['bank_card'] = p['bank_card ...
- SQL SERVER 2008中使用VARBINARY(MAX)进行图像存取的实现方法
在数据库应用项目开发中,经常会使用一些二进制的图像数据,存储和读取显示图像数据主要采用的是路径链接法和内存流法.路径链接法是将图像文件保存在固定的路径下,数据库中只存储图像文件的路径和名称 ...
- [转]Ioc容器Autofac
本文转自:http://www.cnblogs.com/hkncd/archive/2012/11/21/2780041.html Ioc容器Autofac系列(1)-- 初窥 前言 第一次接触A ...
- WebService学习之旅(二)JAX-WS基于Web容器发布WebService
在上节中我们定义Web服务接口和实现类后,调用Endpoint类的静态方法publish发布来webservice,这种方法使用起来虽然简单,但是对于一个企业级应用来说通常对外提供的服务可能不止一个, ...
- 在PaaS上开发Web、移动应用(2)
在PaaS上开发Web.移动应用(2) PaaS学习笔记目录 PaaS基础学习(1) 在PaaS上开发Web.移动应用(2) PaaS优点与限制(3) 6. 巨型代码,是指持续不断地向一个应用程序添加 ...
- ios has denied the launch request.
ios has denied the launch request. You can choose either of the two ways. Solution 1: Open System Pr ...
- Java之instanceof
class Base{ int x = 1; static int y = 2; String name(){ return "mother" ...
- windows 操作系统种类
@hcy 敬请访问:http://blog.sina.com.cn/iihcy Microsoft公司从1983年开始研制Windows系统,最初的研制目标是在MS-DOS的基础上提供一个多任务的图形 ...
- python_113_socket编程
Socket语法及相关 socket概念 socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递. 我们知道网络 通信 都 是基于 ip+port 方能 ...