cdoj 1322 柱爷把妹(吃惊高清重制版)
题目传送门
柱爷把妹(吃惊高清重制版)
Time Limit: 2000/2000MS (Java/Others) Memory Limit: 125000/125000KB (Java/Others)
某日,喵蛤蛤村,天行廖大师走在咸鱼路上,突然,迎面走来一女子
有言到:
北方有佳人,绝世而独立。
一顾倾人城,再顾倾人国。
闭月羞花怨,沉鱼落雁愁。
貂婵拜月闭冰盘,佳丽忧民叹国残。
回眸一笑百魅生,六宫粉黛无颜色。
解释春风无限恨,沈香亭北倚阑干。
绝代有佳人,幽居在空谷。
君王数载犹尝胆,美色几时能救国?
俊眉修眼,顾盼神飞,文彩精华,见之忘俗。
脸若银盘,眼似水杏,唇不点而红,眉不画而翠。
手如柔荑,肤如凝脂,领如蝤蛴,齿如瓠犀,螓首蛾眉,巧笑倩兮,美目眇兮
咸鱼廖大师的目光已经呆滞,而更让他吃惊的是她的旁边居然是柱爷!
说好的一起单身,柱爷却悄悄的脱了单
当然,把妹柱把妹是需要资金的!,而股市正好是柱爷资金的主要来源地
这是因为柱爷有自己独特的黑科技技巧
柱爷通过交易知道了接下来N天的股市行情,每天的买入/卖出价格为Pi,每天柱爷只能做最多一种操作,当然柱爷也可以什么都不做。
对于每个操作,有一个手续费F,对于买入操作,会在买入操作之前扣除F块钱,而对于卖出操作,则会在柱爷卖出操作执行完后扣除F的手续费.
注意,柱爷初始时有M块钱的本金,柱爷需要保证在任意时刻自己的现金 ≥0
现在请问柱爷在N天后最多能有多少钱?
Input
第一行三个整数N,M,F,分别表示一共有N天,本金为M,手续费为F
接下来N行,每行一个整数Pi,代表第i天的交易价格
数据保证:
1≤N≤105
1≤M≤105
1≤F≤105
1≤Pi≤2∗105
答案≤2∗1018
Output
输出仅一行,表示柱爷 N N天后能拥有的最多现金
Sample input and output
Sample Input | Sample Output |
---|---|
3 10000 1 4000 4004 4002 |
10006 |
3 10000 100000 4000 4004 4002 |
10000 |
Hint
对于样例 1 1,柱爷会在第一天买入 2 2股,在第 2 2天卖出 2 2股最优
这样柱爷能赚最多的钱(就能更好的把妹了)
最近在做动规的专题练习,就做到了这道题。此题很容易想到O(n^2的算法,定义dp[i]为第i天,已经做出决策的最大收益,状态转移方程为dp[i] = max(dp[i-1],(dp[k] - F) / p[k + 1] * p[i] + (dp[k] - F) % p[k] - F),但对于题中数据范围,这显然无能为力。然而股票市场波动不定,价格并无单调性,此方程也无法用斜率优化,我们就要另寻出路。
首先此题数据为1e5,显然可以用O(nlogn) 或 O(n) 过O(nlongn)的做法为cdq分治(然并不会)。O(n)的做法为动规。首先,如果没有手续费,那么此题就是比较接近理想收入问题。如果存在a < b < c , p[a] < p[b] < p[c],那么我们可以得到a->b, b->c 等价于a -> c。(证明很显然)。现在有F,怎么办,加了以后再减就好。这样我们就可以实现O(1)的转移。先用O(n)进行预处理,再进行O(n)的dp。
见了代码就比较清晰思路。
#include <bits/stdc++.h>
using namespace std;const int Maxn = 100010;
typedef long long LL;
int p[Maxn], nxt[Maxn], Stack[Maxn];
LL dp[Maxn][2];void SelfMax(LL &a, const LL &b) { if (a < b) a = b; }int main() {int N, M, F;scanf("%d%d%d", &N, &M, &F);for (int i = 1; i <= N; ++i) scanf("%d", p + i);int top = 0; Stack[top] = N;for (int i = N; i; --i) {while (top && p[i] >= p[Stack[top]]) --top;if (top) nxt[i] = Stack[top];else nxt[i] = i;Stack[++top] = i;}memset(dp, 128, sizeof dp);dp[1][0] = M; LL tmp, ans = 0;for (int i = 1; i <= N; ++i) {SelfMax(ans, dp[i][0]); SelfMax(ans, dp[i][1]);SelfMax(dp[i + 1][0], max(dp[i][0], dp[i][1]));SelfMax(dp[nxt[i]][0], max(dp[i][0], dp[i][1]));tmp = dp[i][0] - F; if (tmp > 0 && nxt[i] > i) SelfMax(dp[nxt[i]][1], tmp / p[i] * p[nxt[i]] + tmp % p[i] - F);tmp = dp[i][1] + F;if (tmp > 0 && nxt[i] > i) SelfMax(dp[nxt[i]][1], tmp / p[i] * p[nxt[i]] + tmp % p[i] - F);}cout << ans << endl;return 0;
}
cdoj 1322 柱爷把妹(吃惊高清重制版)相关推荐
- android 英雄无敌3,安卓TOP10:《英雄无敌3》高清重制版上架
魔法门之英雄无敌3:高清版 http://img3.cache.netease.com/photo/0031/2015-01-29/600x450_AH5CQJ8T4UUJ0031.jpg http: ...
- 唐老鸭历险记Java版本,唐老鸭历险记高清重制版
游戏简介 最近CAPCOM致力于对经典IP的重制,本作<唐老鸭历险记高清重制版>便是其中之一,游戏主要针对画质进行了大幅度提升,各方面细节都有了不错的改善,对于当年很多玩家吐槽的画质问题, ...
- 红警1开源放出源码,4K高清重制版登顶Steam畅销榜!网友:青春回来了
大数据文摘出品 作者:笪洁琼 "Sir,yes sir." "You've got no place to hide!" "You'll be a s ...
- 高清重制版阿波罗11号录像,英伟达RTX还原50年前登月细节
晓查 发自 凹非寺 量子位 出品 | 公众号 QbitAI 1969年,阿姆斯特朗的一小步,成为人类历史的一大步. 为了纪念阿波罗11号登月球50周年,英伟达用RTX系列显卡的光线追踪技术,修复了颗粒 ...
- 英雄无敌3高清 Android,安卓TOP10:《英雄无敌3》高清重制版上架
安卓TOP10:TOP.5<人体保卫战(Defend Your Life!)> <人体保卫战(Defend Your Life!)>是一款策略塔防游戏.游戏中,玩家压迫扮演保护 ...
- 唐老鸭历险记Java版本,唐老鸭历险记游戏百度网盘下载-唐老鸭历险记高清重制下载3DM免安装未加密版-西西游戏下载...
<唐老鸭历险记>是迪士尼系列经典横版闯关游戏唐老鸭版本,有着可爱的画面,趣味的关卡和丰富的收集元素.本次放出的是该系列的高清重制版,除了画面更家精致外,还加入了很多新的元素,相信能带给玩家 ...
- cdoj 1354 柱爷很忙
题目传送门 柱爷很忙 Time Limit: 1000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
- CDOJ 1347柱爷的矩阵(二维dp)
柱爷的矩阵 Time Limit: 125/125MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Stat ...
- CDOJ 1355 柱爷与三叉戟不得不说的故事(枚举子集状压dp)
柱爷与三叉戟不得不说的故事 Time Limit: 500/500MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Subm ...
最新文章
- excel像素画教程_像素画新手教程:极简像素画角色分析
- RESTful 架构风格概述
- Cloud一分钟 | 云厂商Zoho域名被禁两小时;京东云公布医疗健康战略
- 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。
- JavaWeb的Servlet、ServletContext
- css 电子数字字体
- 机器学习大牛李飞飞的电脑配置
- 2019PLAGH-MIT医疗大数据学术交流及Datathon活动正式开始,Workshop环节精彩纷呈
- 每一个成年男人在算法中都是好色之徒
- python乒乓球比赛规则介绍_乒乓球比赛规则介绍(上中下)
- c语言中nop的作用,单片机c语言编程里的nop()含义是什么?
- 凌晨3点不回家:因为想不到的心酸!
- outlook邮件模板_如何在Microsoft Outlook中创建和使用电子邮件模板
- 【CSDN英雄会】囯炬CEO张代浩:做写架构的人,做制定游戏规则的人
- 如何绘制业务架构图 — 1. 概述
- Cesium是什么,简介
- Growth Hacker:新型的市场 VP
- Pointpillars三维点云实时检测
- php求三个数中间值
- python有趣的库_python的一些比较冷门、但是有趣的库 - 标签 - 古明地盆 - 博客园...
热门文章
- 520 | 机器人竟然对我表白了?!用Python假装自己有女朋友(附代码)
- 使用 IntelliJ IDEA 查看服务器日志文件
- 怎么在服务器查看项目日志,什么是服务器日志?服务器日志要怎么看?
- “我在腾讯工作6年,月薪平均7万的工作让我收获了什么”
- 国内技术团队博客(全都是前端!)
- GMOJ 4161 / Luogu P4449 于神之怒 (加强版) 题解
- Shield 安装与配置
- 使用iframe页面父子传参数
- windows编程之TextOut与DrawText -- 文本输出实验
- 安卓系统的日历开发(项目报告1)【项目开发需求及功能介绍】