1、B站视频链接:E24 线性DP 股票买卖含冷冻期_哔哩哔哩_bilibili
#include <bits/stdc++.h>
using namespace std;
const int N=100010;
int w[N],f[N][3];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>w[i];
f[0][1]=-1e7;
f[0][0]=-1e7;
f[0][2]=0;
for(int i=1;i<=n;i++){
f[i][1]=max(f[i-1][1],f[i-1][2]-w[i]);
f[i][0]=f[i-1][1]+w[i];
f[i][2]=max(f[i-1][0],f[i-1][2]);
}
printf("%d\n",max(f[n][0],f[n][2]));
return 0;
}
#include <bits/stdc++.h>
using namespace std;
const int N=100010;
int w[N],f[N][2];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>w[i];
f[0][0]=0;
f[1][0]=0;
f[1][1]=-w[1];//第一天有票,买入了
for(int i=2;i<=n;i++){
f[i][0]=max(f[i-1][0],f[i-1][1]+w[i]);
f[i][1]=max(f[i-1][1],f[i-2][0]-w[i]);
}
cout<<f[n][0];
return 0;
}