zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    js操作
    函数知识点补充
    css---position
    css-浮动
    css-边界重叠以及边界塌陷
    css
    css文本类型操作
    POJ 2828 线段树活用
    POJ 3468 线段树
    POJ 3013 SPFA算法,邻接表的使用
  • 原文地址:https://www.cnblogs.com/ZhengLijie/p/14841680.html
Copyright © 2011-2022 走看看