AcWing 1056. 股票买卖 III
题目
给定一个长度为 NNN 的数组,数组中的第 iii 个数字表示一个给定股票在第 iii 天的价格。
设计一个算法来计算你所能获取的最大利润。你最多可以完成两笔交易。
注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
输入格式
第一行包含整数 N,表示数组长度。
第二行包含 N 个不大于 10910^9109的正整数,表示完整的数组。
输出格式
输出一个整数,表示最大利润。
数据范围
1≤N≤1051≤N≤10^51≤N≤105
输入样例1:
8
3 3 5 0 0 3 1 4
输出样例1:
6
输入样例2:
5
1 2 3 4 5
输出样例2:
4
输入样例3:
5
7 6 4 3 1
输出样例3:
0
样例解释
样例1:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3 。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候卖出,这笔交易所能获得利润 = 4-1 = 3 。共得利润 3+3 = 6。
样例2:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
样例3:在这种情况下, 不进行任何交易, 所以最大利润为 0。
#include<iostream>
#include<string>
typedef long long ll;
#define MAXN 200011
ll f[5][MAXN];
int main()
{memset(f,0xcf,sizeof f);ll n;cin>>n;f[0][0]=0;for(ll i=1;i<=n;++i){ll x;cin>>x;f[0][i]=f[0][i-1];f[1][i]=max(f[1][i-1],f[0][i-1]-x);f[2][i]=max(f[2][i-1],f[1][i-1]+x);f[3][i]=max(f[3][i-1],f[2][i-1]-x);f[4][i]=max(f[4][i-1],f[3][i-1]+x);}ll ans = max(f[0][n],max(f[2][n],f[4][n]));cout<<ans;return 0;
}
AcWing 1056. 股票买卖 III相关推荐
- 第三讲:股票买卖 III
题目: AcWing 1056. 股票买卖 III 给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成两笔交 ...
- AcWing 1055. 股票买卖 II
题目 给定一个长度为 NNN 的数组,数组中的第 iii 个数字表示一个给定股票在第 iii天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意 ...
- AcWing 1054. 股票买卖
题目 给定一个长度为 NNN的数组,数组中的第 iii个数字表示一个给定股票在第 iii 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注 ...
- AcWing - 求组合数 III(lucas逆元)
题目链接:https://www.acwing.com/problem/content/description/889/ 时/空限制:1s / 64MB 题目描述 给定n组询问,每组询问给定三个整数a ...
- AcWing 1057. 股票买卖 IV
题目 给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润,你最多可以完成 k 笔交易. 注意:你不能同时参与多笔交易(你必须 ...
- AcWing 1058. 股票买卖 V
题目 给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格. 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不 ...
- DP 状态机模型 AcWing算法提高课 详解
状态机模型 AcWing 1049. 大盗阿福 #include <iostream> #include <algorithm> #include <cmath> ...
- Acwing算法—动态规划
目录 数字三角形模型 AcWing 898. 数字三角形 AcWing 1015. 摘花生 AcWing 1018. 最低通行费 AcWing 1027. 方格取数 AcWing 275. 传纸条 最 ...
- 算法——AcWing算法提高课中代码和题解
文章目录 第一章 动态规划 (完成情况:64/68) 数字三角形模型 最长上升子序列模型 背包模型 状态机模型 状态压缩DP 区间DP 树形DP 数位DP 单调队列优化DP 斜率优化DP 第二章 搜索 ...
最新文章
- python eval 入门_Python学习笔记整理3之输入输出、python eval函数
- dataframe筛选数据根据某一个列的数据在另外的一个数组中
- LIN总线接口静电保护专用器件:DW24DLC-B-S和DW24D-B-S
- screen状态变Attached连接会话失败
- 【转】SharePoint 2013 开发——开发并部署webpart
- mysql 函数怎样创建_mysql里怎样创建函数
- 北大教师:300元每月的生活费,3个馒头,一瓶矿泉水就是午餐
- 蓝桥杯 ADV-156算法提高 分分钟的碎碎念(动态规划)
- POJ 2393 Yogurt factory
- 菜鸟python实例_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题…...
- java课程设计实验报告_《java课程设计实验报告.doc
- atom markdown转换PDF 解决AssertionError: html-pdf: Failed to load PhantomJS module
- 在matlab中的polyval函数,Python/Numpy中三输出等价的Matlab polyval函数
- 在TPU上运行PyTorch的技巧总结
- 【思考】关于英语论文写作的底层逻辑思考
- sftp服务器下载文件至本地电脑
- 使用计算机需要准备硬件和什么,2017年计算机硬件知识参考试题
- 单片机控制ws2812b
- mybatis中使用小于号<
- js遍历localStorage的键值对
热门文章
- php 抽象类 静态 单体设计模式
- spring核心:bean工厂的装配 3
- Android大学课件SQLite3 数据库操作
- Codeforces Round #460 (Div. 2)
- ClassNotFoundException: javax.validation.ValidatorFactory
- Head First 设计模式--1策略模式 组合优于继承
- handler 与message的一些理解
- 常用Git命令和配置
- xml文件的三种解析方式 DOM SAM PULL
- CYQ.Data 轻量数据层之路 V3.0版本发布-Xml绝对杀手(三十二)