题目传送门

柱爷把妹(吃惊高清重制版)

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 柱爷把妹(吃惊高清重制版)相关推荐

  1. android 英雄无敌3,安卓TOP10:《英雄无敌3》高清重制版上架

    魔法门之英雄无敌3:高清版 http://img3.cache.netease.com/photo/0031/2015-01-29/600x450_AH5CQJ8T4UUJ0031.jpg http: ...

  2. 唐老鸭历险记Java版本,唐老鸭历险记高清重制版

    游戏简介 最近CAPCOM致力于对经典IP的重制,本作<唐老鸭历险记高清重制版>便是其中之一,游戏主要针对画质进行了大幅度提升,各方面细节都有了不错的改善,对于当年很多玩家吐槽的画质问题, ...

  3. 红警1开源放出源码,4K高清重制版登顶Steam畅销榜!网友:青春回来了

    大数据文摘出品 作者:笪洁琼 "Sir,yes sir." "You've got no place to hide!" "You'll be a s ...

  4. 高清重制版阿波罗11号录像,英伟达RTX还原50年前登月细节

    晓查 发自 凹非寺 量子位 出品 | 公众号 QbitAI 1969年,阿姆斯特朗的一小步,成为人类历史的一大步. 为了纪念阿波罗11号登月球50周年,英伟达用RTX系列显卡的光线追踪技术,修复了颗粒 ...

  5. 英雄无敌3高清 Android,安卓TOP10:《英雄无敌3》高清重制版上架

    安卓TOP10:TOP.5<人体保卫战(Defend Your Life!)> <人体保卫战(Defend Your Life!)>是一款策略塔防游戏.游戏中,玩家压迫扮演保护 ...

  6. 唐老鸭历险记Java版本,唐老鸭历险记游戏百度网盘下载-唐老鸭历险记高清重制下载3DM免安装未加密版-西西游戏下载...

    <唐老鸭历险记>是迪士尼系列经典横版闯关游戏唐老鸭版本,有着可爱的画面,趣味的关卡和丰富的收集元素.本次放出的是该系列的高清重制版,除了画面更家精致外,还加入了很多新的元素,相信能带给玩家 ...

  7. cdoj 1354 柱爷很忙

    题目传送门 柱爷很忙 Time Limit: 1000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

  8. CDOJ 1347柱爷的矩阵(二维dp)

    柱爷的矩阵 Time Limit: 125/125MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  Stat ...

  9. CDOJ 1355 柱爷与三叉戟不得不说的故事(枚举子集状压dp)

    柱爷与三叉戟不得不说的故事 Time Limit: 500/500MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Subm ...

最新文章

  1. excel像素画教程_像素画新手教程:极简像素画角色分析
  2. RESTful 架构风格概述
  3. Cloud一分钟 | 云厂商Zoho域名被禁两小时;京东云公布医疗健康战略
  4. 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。
  5. JavaWeb的Servlet、ServletContext
  6. css 电子数字字体
  7. 机器学习大牛李飞飞的电脑配置
  8. 2019PLAGH-MIT医疗大数据学术交流及Datathon活动正式开始,Workshop环节精彩纷呈
  9. 每一个成年男人在算法中都是好色之徒
  10. python乒乓球比赛规则介绍_乒乓球比赛规则介绍(上中下)
  11. c语言中nop的作用,单片机c语言编程里的nop()含义是什么?
  12. 凌晨3点不回家:因为想不到的心酸!
  13. outlook邮件模板_如何在Microsoft Outlook中创建和使用电子邮件模板
  14. 【CSDN英雄会】囯炬CEO张代浩:做写架构的人,做制定游戏规则的人
  15. 如何绘制业务架构图 — 1. 概述
  16. Cesium是什么,简介
  17. Growth Hacker:新型的市场 VP
  18. Pointpillars三维点云实时检测
  19. php求三个数中间值
  20. python有趣的库_python的一些比较冷门、但是有趣的库 - 标签 - 古明地盆 - 博客园...

热门文章

  1. 520 | 机器人竟然对我表白了?!用Python假装自己有女朋友(附代码)
  2. 使用 IntelliJ IDEA 查看服务器日志文件
  3. 怎么在服务器查看项目日志,什么是服务器日志?服务器日志要怎么看?
  4. “我在腾讯工作6年,月薪平均7万的工作让我收获了什么”
  5. 国内技术团队博客(全都是前端!)
  6. GMOJ 4161 / Luogu P4449 于神之怒 (加强版) 题解
  7. Shield 安装与配置
  8. 使用iframe页面父子传参数
  9. windows编程之TextOut与DrawText -- 文本输出实验
  10. 安卓系统的日历开发(项目报告1)【项目开发需求及功能介绍】