AcWing 1057. 股票买卖 IV
题目
给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。
设计一个算法来计算你所能获取的最大利润,你最多可以完成 k 笔交易。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。一次买入卖出合为一笔交易。
输入格式
第一行包含整数 N 和 k,表示数组的长度以及你可以完成的最大交易数量。
第二行包含 N 个不超过 100001000010000 的正整数,表示完整的数组。
输出格式
输出一个整数,表示最大利润。
数据范围
1≤N≤1051≤N≤10^51≤N≤105
1≤k≤1001≤k≤1001≤k≤100
输入样例1:
3 2
2 4 1
输出样例1:
2
输入样例2:
6 2
3 2 6 5 0 3
输出样例2:
7
样例解释
样例1:在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2 。
样例2:在第 2 天 (股票价格 = 2) 的时候买入,在第 3 天 (股票价格 = 6) 的时候卖出, 这笔交易所能获得利润 = 6-2 = 4 。随后,在第 5 天 (股票价格 = 0) 的时候买入,在第 6 天 (股票价格 = 3) 的时候卖出, 这笔交易所能获得利润 = 3-0 = 3 。共计利润 4+3 = 7.
#include<bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
int n,k,a[100005],f[100005][103][2],ans;int main(){cin>>n>>K;for(int i=1; i<=n; i++) cin>>a[i];memset(f,-0x3f,sizeof(f)); for(int i=0; i<=n; i++) f[i][0][0] = 0;for(int i=1; i<=n; i++) for(int j=1; j<=k; j++) {f[i][j][0] = max(f[i-1][j][0],f[i-1][j][1]+a[i]);f[i][j][1] = max(f[i-1][j][1],f[i-1][j-1][0]-a[i]);}for(int i=0; i<=k; i++) ans = max(ans,f[n][i][0]);cout<<ans;return 0;
}
AcWing 1057. 股票买卖 IV相关推荐
- AcWing 1058. 股票买卖 V
题目 给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格. 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不 ...
- AcWing 1056. 股票买卖 III
题目 给定一个长度为 NNN 的数组,数组中的第 iii 个数字表示一个给定股票在第 iii 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成两笔交易. 注意: 你不能同时参与多笔交 ...
- AcWing 1055. 股票买卖 II
题目 给定一个长度为 NNN 的数组,数组中的第 iii 个数字表示一个给定股票在第 iii天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意 ...
- AcWing 1054. 股票买卖
题目 给定一个长度为 NNN的数组,数组中的第 iii个数字表示一个给定股票在第 iii 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注 ...
- 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 第二章 搜索 ...
- AcWing算法提高课
1. 动态规划(43/68) 1.1 数字三角形模型(4/4) 1.1.1 AcWing 1015. 摘花生 结论: f[i][j]=max(f[i−1][j],f[i][j−1])+w[i][j] ...
- 【动态规划】状态机模型
整理的算法模板合集: ACM模板 文章目录 A.抛砖引玉 - AcWing 1049. 大盗阿福 B.AcWing 1057. 股票买卖 IV C.AcWing 1058. 股票买卖 V D.AcWi ...
最新文章
- 模型部署神器:高中生也能读懂的Docker入门教程
- c语言一个偶数用两个素数表示,用java怎样编写一个偶数总能表示为两个素数之和的程序...
- python中判断字符是否为中文
- MooTools教程(1):认识MooTools
- python基础教程:类型转换和舍入
- vant-UI组件初使用:浅谈 - 解说篇
- jsp el表达式无法正常显示解决方法
- 如何制作个人网站(如何搭建个人博客)
- chrome扩展程序安装_如何在Windows上删除“由企业策略安装”的Chrome扩展程序
- 佳能dpp4中文版 附使用教程
- falcon-agent模块代码里执行sys.CmdOutBytes命令导致的问题
- 【drawio笔记】在drawio中添加数学公式
- R: symbol lookup error: /home/lib/../../libreadline.so.6: undefined symbol: PC
- python处理excel表格
- arm mali 天梯图_手机最新CPU天梯图 2018年12月手机最新处理器排名表
- Python socket文件上传下载
- Java实现-跳跃游戏
- java Steam流的用法
- 如何在线制作APP图标?
- 3D动作绑定_三维动画制作流程——商迪3D科普分享系列(二)