您的位置:首页 > 其它

整理: 动态规划---相关优化

2017-11-09 16:18 295 查看
注意以下内容都是在我的认知范围内,有错误在所难免……

1.矩阵乘法优化,

具体一点地,比如当前dp状态是多维,

那么把后面几维装压变成一维,

比如f[i][j],而i=1~n,j=1~m,

把它写成f[i],i=1~n*m,对应转移。

假设压缩之后f[i]=∑x[j]∗f[i−pj]+T,

pj为某些值,x[j]为系数,T为常数

如果压维度之后的f[i]满足:

(1)随着i的变化,x[j],pj,T的值不变化

(2)可以推固定不变的系数矩阵(其实(1)也是为了满足这个)

(3)可能要求f
而n非常非常大

那么一般就是矩阵乘法优化dp了。

时间复杂度转变为O(X3∗log(n)),X为推出来的矩阵的边长。

……当然如果X过大也会GG的。

2.单调队列/斜率优化

考虑之前的决策如果j<k<i,是否有一些性质,

从这些性质里看可不可以出现单调性,

由此来维护值/斜率。

……这个感觉真没什么好讲的,用多了就熟练了。

如果还不太会,,其实我也不寄道NOIp会不会考,

所以百度扒=v=

3.数据结构/高级算法、数据结构(cdq,树套树,kd tree)

比较好用的,比如f[i]=max{f[j],aj<=ai}+1

那么可以用线段树/平衡树/树状数组……花式维护,

因为只要消除aj<=ai的限制。

有时候可能会发现一重里又一重,就是维护不过来,

那有可能有另外的性质,可以考虑去找找;

也可能是高级题,需要用cdq这种同时维护多个条件。

主要是化简问题,归约问题。

4.决策单调性

这个还不太会,主要是找一些计算式的性质,

然后判断决策点有没有单调的移动性,就是当处理点后移,

取的决策点会不会也后移这种。

……只做了一题,这种性质题当然虚得要死。。

似乎用平衡树,整体二分这样的方法维护。

现在感觉平行四边形优化应该也是一种决策单调性吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: