1,滚动数组
f[0/1][1…n]
2,前缀和
略
3,单调栈/单调队列=>斜率优化
适用范围:需要转移到f[i][j]的是一个区间,而且在状态右端点右移的时候左端点不动.
令x[k]=sum[k],y[k]=dp[k][j-1]+sum[k]^2,斜率为-2*sum[i]
用一个单调栈维护一个凸包,即可以保证
k取到最小
扫描二维码关注公众号,回复:
5173560 查看本文章
有的时候可以看成一个一次函数但不单调,可以用splay维护。
4,cdq分治(可用分治FFT完成)
例:三维偏序
知识点:二分栈
5,决策单调性
发现决策单调性,打表,猜测.
uoj 29