[luoguP2569] [SCOI2010]股票交易(DP + 单调队列)
传送门
$f[i][j]$ 表示第i天,手中股票数为j的最优解
初始化 $f[i][0]=0$ $0<=i<=n$
4种方式转移
- 以前没买过,第i天凭空买 $f[i][j]=j*ap$
- 第i天什么都不干 $f[i][j]=f[i1][j]$
- 第i天买 $f[i][j]=f[iw1][k](jk)*as=f[iw1][k]+k*asj*as$
- 第i天卖 $f[i][j]=f[iw1][k]+(kj)*bs=f[iw1][k]+k*bsj*bs$
可以将 $f[iw1][k]+k*as$ 和 $f[iw1][k]+k*bs$ 放到单调队列中
#include <cstdio>#include <cstring>#include <iostream>#define N 3001using namespace std;int n, m, w, ap, bp, as, bs, t, h, ans;int f[N][N], q[N];inline int read()int main()h = 1, t = 0;for(j = m; j >= 0; j)}}for(i = 0; i <= m; i++) ans = max(ans, f[n][i]);printf("%d\n", ans);return 0;}
上一篇:[luoguP2325] [SCOI2005]王室联邦(树分块乱搞)
下一篇:[luoguP3317] [SDOI2014]重建(矩阵树定理)
DP 单调队列
spc文件怎么看,spc文件用什么打开?
0文件怎么看,0文件用什么打开?
sparseimage文件怎么看,sparseimage文件用什么打开?
sp文件怎么看,sp文件用什么打开?
dv文件怎么看,dv文件用什么打开?
soundpack文件怎么看,soundpack文件用什么打开?
dus文件怎么看,dus文件用什么打开?
dtw文件怎么看,dtw文件用什么打开?
spdf文件怎么看,spdf文件用什么打开?
0文件怎么看,0文件用什么打开?