• AcWing 1057. 股票买卖 IV


    AcWing 1057. 股票买卖 IV

    状态表示:
    (f[i][j][0])表示,在1~n天中,进行j次交易,手中无货时候的最大利润。
    (f[i][j][1])表示,在1~n天中,进行j次交易,手中有货时候的最大利润。

    利用状态机模型分析:
    (f[i][j][0] = max(f[i - 1][j][0], f[i - 1][j][1] + w[i]))
    (f[i][j][1] = max(f[i - 1][j][1], f[i - 1][j - 1][0] - w[i]))

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    const int N = 1E5 + 10, M = 110, K = 2;
    int f[N][M][K];
    int n, k;
    int w[N];
    
    int main() {
        scanf("%d%d", &n, &k);
        for (int i = 1; i <= n; i++) scanf("%d", &w[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] + w[i]);
                f[i][j][1] = max(f[i - 1][j][1], f[i - 1][j - 1][0] - w[i]);
            }    
        }
        
        int res = 0;
        for (int i = 0; i <= k; i++) res = max(res, f[n][i][0]); //枚举每一次的交易
        
        printf("%d
    ", res);
        
        return 0;
    }
    
  • 相关阅读:
    Evaluation
    Version
    bzoj4184-shallot
    jQuery 获取并设置 CSS 类
    jQuery 删除元素
    jQuery 添加元素
    jQuery 设置内容和属性
    jQuery
    jQuery Chaining
    CI 框架增加公用函数-如何使用Helper辅助函数
  • 原文地址:https://www.cnblogs.com/ZhengLijie/p/14841680.html
Copyright © 2020-2023  润新知