C/C++教程

[AcWing 1058] 股票买卖 V

本文主要是介绍[AcWing 1058] 股票买卖 V,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

image
image


点击查看代码
#include<iostream>
#include<cstring>
#include<algorithm>

using namespace std;

const int N = 1e5 + 10;

int n;
int a[N];
int f[N][3];

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i ++)
        cin >> a[i];
    memset(f, -0x3f, sizeof f);
    f[0][0] = 0;
    for (int i = 1; i <= n; i ++) {
        f[i][0] = max(f[i - 1][0], f[i - 1][2]);
        f[i][1] = max(f[i - 1][1], f[i - 1][0] - a[i]);
        f[i][2] = f[i - 1][1] + a[i];
    }
    cout << max(f[n][0], f[n][2]) << endl;
    return 0;
}

  1. 状态机模型
这篇关于[AcWing 1058] 股票买卖 V的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!