套路随笔

某些毒瘤的DP经常要依靠数学优化。转移状态成环的就可以靠高斯消元解出方程。例题:bzoj 3143 bzoj 3720

一些DP转移某一维奇大无比。在不能消减状态的情况下可以考虑转换转移方程,证明出来他关于这维为某多项式(证不出来打表也大差不差)然后使用拉格朗日插值来快速求解。例题:bzoj4559 bzoj2655

多项式问题很多且十分蛋疼。许多要用到数学对数指数运算等技巧来降低复杂度。一个奇妙的主定理 T(n)=T(n/2)+nlogn 是 O(nlogn)级别的时间复杂度。因此有些时候就可以奇妙的不停叠加而不变复杂度(如多项式开根,exp等都是如此)生成函数本身非常有技巧也很讲究,正在研究中(坑待填)因为FFT或NTT本身用来维护的是卷积的形式(也可以说是多项式乘法,柯西乘法),所以一些优美的乘机的形式就可以转化成ln的指数相加,或者是在模意义下的的原根的指数相加的形式。一般通过这样的转化可以变为卷积形式。DP有时候可以观察转移的方式,如果形式非常像卷积也可以用FFT、NTT来优化转移,并可以套上快速幂,时间复杂度一般可观。总之无论是组合,还是DP,都有FFT可以大显身手的地方,神奇的生成函数基本离不开它,FFT确实是一个比较神仙的算法。

要处理中位数的时候可以试一试二分,类似分数规划,把大于的变1,小于的变0.

有的时候如果说点值的取值并没有特殊需求,可以直接去原根IDFT掉代替拉格朗日差值,复杂度变成log

原文地址:https://www.cnblogs.com/Atoner/p/13066655.html