--- title: "股票买卖2" created: 2025-11-28 tags: - 算法 --- # 股票买卖2 ## 题目 [股票买卖 V](https://www.acwing.com/problem/content/1060/) ![[image-47b6a3f0.png]] ## 思路分析 ![[image-feab34fd.png]] ## 代码实现 ```cpp #include using namespace std; #define endl '\n' const int N=100010,INF=0x3f3f3f3f; int n; int w[N]; int f[N][3]; int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin>>n; for(int i=1;i<=n;i++) cin>>w[i]; //入口设置为卖出的第二天 即手上没有股票的时候 //不可能是卖出的第一天也不可能一开始就有股票 又因为属性为max 所以设置为-inf f[0][0]=f[0][1]=-INF,f[0][2]=0; for(int i=1;i<=n;i++){ f[i][0]=max(f[i-1][0],f[i-1][2]-w[i]); f[i][1]=f[i-1][0]+w[i]; f[i][2]=max(f[i-1][2],f[i-1][1]); } cout<