二刷提高课,题解目录在这里— 提高课的题解目录
这一题在状态机模型中多了一条状态,即冷冻期
所有共有三个状态,注意初始化
0:买入态(手里有股票)
1:冷冻期态
2:卖出态(手里无股票)
#include<iostream>
using namespace std;
const int N=1e5+10;
int f[N][3];
int main()
{
int n;
cin>>n;
f[0][0]=-1e8;
f[0][1]=-1e8;
for(int i=1;i<=n;i++)
{
int s;
cin>>s;
f[i][0]=max(f[i-1][0],f[i-1][2]-s);
f[i][1]=f[i-1][0]+s;
f[i][2]=max(f[i-1][1],f[i-1][2]);
}
int res=max(f[n][1],f[n][2]);
cout<<res;
return 0;
}