zoukankan      html  css  js  c++  java
  • Do Use FFT

    题意

    给定序列({A},{B},{C}),求序列({ans_i}),其中
    (ans_ksum_{1 leq i leq N} left( C_i imes prod_{1 leq j leq k} (A_i+B_j) ight))

    做法

    (T(x)=sumlimits_{i=1}^Nfrac{C_i}{1-A_ix})
    (P_{[L,R]}=prodlimits_{i=L}^R (x+B_i))

    (ans_k=[x^0]T(x)P_{[1,k]}(1/x))

    考虑求(T(x)=frac{sumlimits_{i=1}^N C_iprodlimits_{j eq i}(1-A_jx)}{prodlimits_{i=1}^n(1-A_ix)}),求(G(x)sumlimits_{i=1}^N C_iprodlimits_{j eq i}(1-A_jx))

    分治fft,令(G_{[L,R]}(x)=sumlimits_{i=L}^R C_iprodlimits_{j eq i,jin[L,R]}(1-A_jx)),令(H_{[L,R]}(x)=prodlimits_{i=L}^R (1-A_ix))
    (G_{[L,R]}(x)=G_{[L,mid]}(x)H_{(mid,R]}(x)+H_{[l,mid]}(x)G_{(mid,R]}(x))

    考虑求([x^0]T(x)P_{[1,k]}(1/x))
    (Solve(1,n))传入(T(x))
    考虑得到(Solve(l,r)),向(Solve(l,mid))传入(Solve(l,r));向(Solve(mid+1,r))传入(Solve(l,r)cdot P_{[l,mid]}(1/x))
    由于最后我们仅需得到([x^0])的系数,那么(Solve(l,r))保留([x^0],[x^1],cdots,[x^{r-l+1}])项系数即可。

    总复杂度为(O(nlog^2n))

  • 相关阅读:
    输出三角行
    练习
    循环
    阶乘
    常量、变量、数据类型 搞错N+1次 累死
    UTF-8
    数据库事务
    Jsp的使用
    Cookie和Session
    请求转发和重定向
  • 原文地址:https://www.cnblogs.com/Grice/p/14499038.html
Copyright © 2011-2022 走看看