zoukankan      html  css  js  c++  java
  • 多(少)项式快速幂

    对一个多项式(A)的快速幂可以在(O(nlog_2n))的时间内计算多项式模(x^n)的乘方。
    如果多项式的项数(m)较少,则我们有一个(O(nm))的算法。
    ((A^k(x))'=kA^{k-1}(x)A'(x))
    (A^k(x)'A(x)=kA^k(x)A'(x))
    ([x^n]A^k(x)'A(x)=[x^n]kA^k(x)A'(x)=sum_{i=0}^n(i+1)res_{i+1}a_{n-i}=ksum_{i=0}^n(i+1)a_{i+1}res_{n-i})
    发现我们只需要求得([x^n])
    (G(x)=A^k(x))
    解得([x^{n+1}]G(x)=frac{ksum_{i=0}^{m-1}(i+1)a_{i+1}[x^{n-i}]G(x)-sum_{i=n-m}^{n-1}(i+1)[x^{i+1}]G(x)a_{n-i}}{(n+1)a_0})
    这样子,我们使用(O(m))的代价由之前的项递推计算了(G[x^{n+1}]G(x))
    时间复杂度(O(nm))

  • 相关阅读:
    HDU --1251
    POJ -- 2436
    POJ -- 3140
    POJ 3107
    POJ -- 2002
    POJ -- 1655
    lintcode154
    lintcode192
    lintcode582
    lintcode901
  • 原文地址:https://www.cnblogs.com/ctmlpfs/p/14532949.html
Copyright © 2011-2022 走看看