提高
(状态机模型)股票买卖IV
- 上一次的思路总结,上次写的时候忘记总结了,现在重新画一下图

思路分析
- 这道题是一个经典的状态机模型,具体分析如下,两种做状态以及对应的转换形式。

实现代码
- 一写代码就懵逼,不知道怎么定义边界值,是从零开始还是从一开始,要不要给边界赋值?都不知道,得找一个方法,一块解决掉。
- 忘记怎么用memset,需要好好整理一下。
- memset是来自cstring的
- memset(ptr,value,sizeof())
- 写成了下面这样
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 10010;
const int K = 110;
int w[N],k,n;
int f[N][K][2];
int main(){
cin>>n>>k;
for (int i = 0; i < n; ++i) {
cin>>w[i];
}
memset(f, 0, sizeof(f));
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= k; ++j) {
f[i][j][0] = max(f[i - 1][k][0] , f[i - 1][k][1] + w[i]);
f[i][j]