E22 线性DP 股票买卖
视频链接:https://www.bilibili.com/video/BV1iK4y177jT/
#include<iostream> #include<cstring> using namespace std; const int N = 100010; int w[N],f[N][2]; int n; int main(){ scanf("%d", &n); for(int i=1;i<=n;i++) scanf("%d",&w[i]); f[0][0]=0; f[0][1]=-1e6; for(int i=1; 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-1][0]-w[i]); } cout<<f[n][0]; }