目录
dp优化
- 根据题目性质优化
- 数据结构优化
- 一般观察转移方程可得
- 常用数据结构:单调队列、前缀和、线段树/树状数组
- 决策单调性优化
- 单调栈+二分
- 斜率优化
- 分治
- wqs二分
- 凸包优化
POJ1821
k 个人要刷 n 块木板,第 i 个人站在第 块木板上,他可以粉刷长度为
的区间,可以不刷但如果刷的话必须包括
。每块木板只能刷一次,每个人刷一块木板可以获得
元。求最大收益和。
1 <= N <= 16000 1 <= K <= 100
- f[i][j] 表示前 i 个人刷了前 j 个木板的收益
- f[i][j]=max(f[i−1][k]+(j−k)p[i]) 要求第 i 个人能刷 [k+1,j]
- 把j提出来
- f[i][j]=max(f[i−1][k]−k∗p[i])+j∗p[i]
- 以第一维为阶段,那么就是用上一维的一段区间里的最大值,单调队列
gym101986E
给一个长为 n 的序列 a,每个点为黑或白,每次操作可以将一个长度小于等于 k 的区间涂白或者涂黑,问变成序列 b 的最少操作次数。 n≤
表示前 i 个格子一样的最少操作次数。
- 枚举 j<=i ,把 [j,i] 全涂成 i 点的颜色,然后再将 [j,i] 区间内的点涂成一样的。后者发现是区间内黑白的段数。
- 满足决策单调性,单调队列扫一遍
决策单调性
- 1D/1D问题中,若随i增加,决策点单调,那么具有决策单调性
- 1D/1D:状态数是O(n),单次决策量是O(n)
- 对于标准的1D/1D方程
- 其中
是关于
的任意函数
- 若权函数w满足
,则称其满足凸完全单调性
- 易证明k>0时,有
随i单调不降,
随j单调不降
- 那么对于
,
,称该