zoukankan      html  css  js  c++  java
  • 套路随笔

    某些毒瘤的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

  • 相关阅读:
    curd_4
    curd_2
    Python Regex库的使用
    Python Assert 确认条件为真的工具
    Python Regex库的使用(2)
    Python lambda的用法
    Python 列表综合
    with ss(date,date2) (select * from sysdummy1) select * from ss
    延迟执行函数
    ObjectiveC 的基本数据类型、数字、字符串和集合等介绍
  • 原文地址:https://www.cnblogs.com/Atoner/p/13066655.html
Copyright © 2011-2022 走看看