状态机编程_vivado状态机

状态机编程_vivado状态机给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润,你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。一次买入卖出合为一笔交易。输入格式第一行包含整数 N 和 k,表示数组的长度以及你可以完成的最大交易数量。第二行包含 N 个不超过 10000 的正整数,表示完整的数组。输出格式输出一个整数,表示最大利润。数据范围1≤N≤105,1≤k≤100输入样例1:3 22

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。

设计一个算法来计算你所能获取的最大利润,你最多可以完成 k 笔交易。

注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。一次买入卖出合为一笔交易。

输入格式
第一行包含整数 N 和 k,表示数组的长度以及你可以完成的最大交易数量。

第二行包含 N 个不超过 10000 的正整数,表示完整的数组。

输出格式
输出一个整数,表示最大利润。

数据范围
1≤N≤105,
1≤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.

题解
f[k][i][0]表示第i天已经进行了k次交易并且手里没货的最大收益
f[k][i][1]表示第i天已经进行了k次交易并且手里有货的最大收益

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
const int KN = 110;
int f[KN][N][2];
int a[N];
const int INF = 0x3f3f3f3f;
int main(){ 
   
    int n,K;
    cin>>n>>K;
    for(int i = 0;i <= K;i ++)f[i][0][1] = -INF;
    for(int i = 1;i <= n;i ++){ 
   
        cin >> a[i];
        for(int k = 0;k <= K;k ++){ 
   
            f[k][i][0] = f[k][i - 1][0];
            if(k >= 1)f[k][i][0] = max(f[k][i][0],f[k - 1][i - 1][1] + a[i]);
            f[k][i][1] = max(f[k][i - 1][1],f[k][i - 1][0] - a[i]);
        }
    }
    cout<<f[K][n][0];
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168686.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Snapde和常用的CSV文件编辑器对比

    Snapde和常用的CSV文件编辑器对比Snapde,一个专门为编辑超大型数据量CSV文件而设计的单机版电子表格软件;它运行的速度非常快,反应非常灵敏。CSV是一种用逗号分隔列、回车分割行的文本文件,市面上常用的CSV编辑软件有:Snapde、Ron’sEditor、CSVEditorPro、DMcsvEditor、CSVPad、CSVed、CSVFileView、KillinkCSVEditor、CSVBuddy、Me…

    2022年7月21日
    27
  • Java设计模式(五)之创建型模式:原型模式

    Java设计模式(五)之创建型模式:原型模式

    2021年4月8日
    125
  • pycharm结果显示窗口_pycharm怎么显示图片

    pycharm结果显示窗口_pycharm怎么显示图片问题描述在电脑中重新安装Anaconda3&PyCharm后,运行原来的程序画图时出现了下图界面。不能弹出如下图所示的“figure”窗口。解决方法:这是因为PyCharm在Sciview中开放它。具体操作步骤如下所示:1、“File—&gt;Settings”,打开Settings窗口。2、找到“PythonScientific”,去除右边候选框中的勾号。…

    2022年8月25日
    7
  • s一般怎么称呼自己的m_怎么判断自己的肾脏是否健康?肾好的人,一般会有这8大特征…

    s一般怎么称呼自己的m_怎么判断自己的肾脏是否健康?肾好的人,一般会有这8大特征…肾脏是身体的“净化器”,经过肾脏代谢排毒之后,废物顺着尿液排出体外,使内环境得到净化。可见,拥有一颗健康的肾脏是非常重要的,而我们日常生活中也要注意对肾脏健康的自我检查。那么,我该如何粗略自我判断自己肾脏是否健康呢?接下来就让我们一起来了解一下肾脏健康情况下,身体会有哪些表现。肾脏健康有哪些表现?1、小便没有泡沫:日常生活中小便时在尿液中没有出现泡沫且颜色清澈正常,那么往往说明肾脏也是比较健康的。…

    2022年6月23日
    31
  • TCP三次握手 与 四次断开 的详细过程剖析

    TCP三次握手 与 四次断开 的详细过程剖析

    2021年8月27日
    63
  • socat介绍「建议收藏」

    socat是一個netcat(nc)的替代產品,可以稱得上nc++。socat的特點就是在兩個流之間建立一個雙向的通道。socat的地址類型很多,有ip,tcp,udp,ipv6,pipe,exec,system,open,proxy,openssl,等等。看一個例子:c:\>socat-tcp:192.168.1.18:80這個命令等同於nc192.168.1

    2022年4月7日
    480

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号