zoukankan      html  css  js  c++  java
  • [复习资料]单位根反演学习笔记

    单位根反演学习笔记

    诺,就是这个式子:

    [[kmid n]=frac{1}{k}sum_{i=0}^{k-1}omega_k^{in} ]

    其中 (omega_k)(k) 次单位根。

    证明:当 (kmid n) 时, (omega_k^n=1)(frac{1}{k}sum_{i=0}^{k-1}1=1) ;当 (k otmid n) 时,根据等比数列求和, (frac{1}{k}sum_{i=0}^{k-1}(omega_k^n)^i=frac{1}{k}(1-omega_k^{nk})/(1-omega_k)) ,其中 (omega_k^{nk}=1) ,所以得到的结果就是 (0)

    好的,学完了。

    哦对了,还有一个式子(令 (F(x)=sum_{i=0}f_ix^i) ):

    [sum_{i=0}[kmid i]f_i=sum_{i=0}f_ifrac{1}{k}sum_{j=0}^{k-1}omega_k^{ij}\ =frac{1}{k}sum_{j=0}^{k-1}sum_{i=0}f_i(omega_k^j)^i\ =frac{1}{k}sum_{j=0}^{k-1}F(omega_k^j) ]

    然后就没有然后了。

    哦对了,一些题目比较喜欢考的形式是这样的:

    [sum_{i=0}^n{nchoose i}A(x)^i[kmid i]=sum_{i=0}^n{nchoose i}A(x)^ifrac{1}{k}sum_{j=0}^{k-1}omega_k^{ij}\ =frac{1}{k}sum_{j=0}^{k-1}sum_{i=0}^n{nchoose i}(A(x)omega_k^j)^i\ =frac{1}{k}sum_{j=0}^{k-1}(A(x)omega_k^j+1)^n ]

    其中的 (A(x)) 不仅仅可以是一个数,或者也可以是一个矩阵等等,当然此时后面加的就不是 (1) 而是单位元了。

    感觉这都变成一个套路了,我总感觉我做的题目都是上面这样类似的。

    然后就没有然后了。

    LOJ6485 LJJ 学二项式定理

    直接推式子啊啊啊:

    [sum_{i=0}^n{nchoose i}s^ia_{imod 4}=sum_{i=0}^{3}a_isum_{j=0}^n{nchoose j}s^j[4mid (j-i)]\ =sum_{i=0}^3a_ifrac{1}{4}sum_{j=0}^3(somega_4^j+1)^n ]

    硬算即可,其中 (omega_4=911660635)

    洛谷P5591 小猪佩奇学数学

    直接推式子啊啊啊:

    [sum_{i=0}^n{nchoose i}p^ilfloorfrac{i}{k} floor=sum_{i=0}^n{nchoose i}p^isum_{j=1}^i[kmid j]\ =sum_{i=0}^n{nchoose i}p^isum_{j=1}^ifrac{1}{k}sum_{t=0}^{k-1}omega_k^{tj}\ =frac{1}{k}sum_{t=0}^{k-1}sum_{i=0}^n{nchoose i}p^isum_{j=1}^i(omega_k^{t})^j\ =frac{1}{k}(sum_{i=0}^n{nchoose i}p^ii+sum_{t=1}^{k-1}sum_{i=0}^n{nchoose i}p^ifrac{omega_k^t-omega_k^{t(i+1)}}{1-omega_k^t})\ frac{1}{k}(sum_{i=1}^n{n-1choose i-1}np^i+sum_{t=1}^{k-1}frac{omega_k^t}{1-omega_k^t}sum_{i=0}^n{nchoose i}p^i(1-omega_k^{ti}))\ =frac{1}{k}(np(p+1)^{n-1}+sum_{t=1}^{k-1}frac{omega_k^t}{1-omega_k^t}((p+1)^n-(pomega_k^t+1)^n)) ]

    硬算即可,其中有一步把 (t=0) 的情况拆出来是因为公比为 (1) 的等比数列求和不能用公式算。

    BZOJ3328 PYXFIB

    众所周知:

    [F_i=egin{bmatrix}1& 1end{bmatrix} imes egin{bmatrix}0& 1\ 1& 1 end{bmatrix}^i imes egin{bmatrix}1\ 0end{bmatrix} ]

    令这三个矩阵分别为 (A,B,C) ,那么:

    [F_i=A imes B^i imes C ]

    直接推式子啊啊啊:

    [sum_{i=0}^n{nchoose i}F_i[kmid i]=sum_{i=0}^n{nchoose i}F_ifrac{1}{k}sum_{j=0}^{k-1}omega_k^{ij}\ =frac{1}{k}sum_{j=0}^{k-1}A imes(sum_{i=0}^n{nchoose i}B^iomega_k^{ij}) imes C\ =frac{1}{k}sum_{j=0}^{k-1}A imes(Bomega_k^j+I)^n imes C ]

    (其中 (I) 是单位矩阵。)

    硬算即可。

    UOJ450 【集训队作业2018】复读机

    构造 EGF :

    [F(x)=sum_{i=0}[dmid i]frac{x^i}{i!} ]

    题目要求的就是:

    [[x^n]F(x)^k ]

    直接推式子啊啊啊:

    [F(x)=sum_{i=0}frac{x^i}{i!}[dmid i]\ =sum_{i=0}frac{x^i}{i!}frac{1}{d}sum_{j=0}^{d-1}omega_d^{ij}\ =frac{1}{d}sum_{j=0}^{d-1}sum_{i=0}frac{(xomega_d^j)^i}{i!}\ =frac{1}{d}sum_{j=0}^{d-1}e^{xomega_d^j} ]

    分类讨论啊啊啊:

    [F(x)^k=egin{cases}e^{kx}& d=1\ (frac{1}{2}(e^x+e^{-x}))^k=frac{1}{2^k}sum_{i=0}^k{kchoose i}e^{x(2i-k)}& d=2\ (frac{1}{3}(e^{omega_3^0x}+e^{omega_3^1x}+e^{omega_3^2x}))=frac{1}{3^k}sum_{a+b+c=k}{kchoose a,b,c}e^{x(aomega_3^0+bomega_3^1+comega_3^2)} & d=3end{cases} ]

    答案分别是:

    [k^n ]

    [frac{1}{2^k}sum_{i=0}^k{kchoose i}(2i-k)^n ]

    [frac{1}{3^k}sum_{i+jle k}{kchoose i,j,k-i-j}(iomega_3^0+jomega_3^1+(k-i-j)omega_3^2)^n ]

    硬算即可,其中 (omega_3=-frac{1}{2}+frac{sqrt{3}}{2}i) ,在模 (19491001) 意义下 (i=5731711,sqrt{3}=38991,omega_3=663067)

    洛谷P5293 [HNOI2019]白兔之舞

    方便起见记 ([x,y]W) 表示矩阵 (W)(x)(y) 列的值。

    设题目中给的那个矩阵是 (W) ,那么从 (x)(m) 步跳到 (y) 的方案数就是 ([x,y]W^m) ,设答案为 (f(1sim k-1)) 然后直接枚举跳的步数推式子啊啊啊:

    [f(t)=sum_{m=0}^L[kmid (m-t)][x,y]W^msum_{l=0}^L{l-1choose m-1}\ =sum_{m=0}^L{Lchoose m}[x,y]W^mfrac{1}{k}sum_{s=0}^{k-1}omega_k^{s(m-t)}\ =frac{1}{k}sum_{s=0}^{k-1}omega_k^{-st}sum_{m=0}^L{Lchoose m}[x,y]W^momega_k^{sm}\ =frac{1}{k}sum_{s=0}^{k-1}omega_k^{-st}[x,y](Womega_k^s+I)^L ]

    其中 (I) 是单位元,令 (A(i)=f(i) imes k,B(i)=[x,y](Womega_k^i+I)^L) ,那么:

    [A(i)=sum_{j=0}^{k-1}omega_k^{-ij}B(j) ]

    发现是个长度为 (k) 的循环卷积,然后套 Bluestein’s Algorithm 的板子就可以了:

    [A(i)=sum_{j=0}^{k-1}omega_k^{{ichoose 2}+{jchoose 2}-{i+jchoose 2}}B(j)\ =omega_k^{{ichoose 2}}sum_{j=0}^{k-1}omega_k^{-{i+jchoose 2}}B(j)omega_k^{{jchoose 2}} ]

    减法卷积即可。

    然后还有就是这道题目要写任意模数的 FFT/NTT 。

  • 相关阅读:
    JAVA基础之(十三)“集合”
    JAVA基础之(十二)“泛型”
    JAVA基础之(五)”继承“
    算法--验证时间段不交叉/不重复的方法
    工具类--常量类
    工具--常见eclipse配置导入web工程(tomcat容器)步骤
    jar包--POI.jar包使用问题汇总
    java中常忽视的小问题
    ResultSetMetaData
    PreparedStatement
  • 原文地址:https://www.cnblogs.com/lsq147/p/14345798.html
Copyright © 2011-2022 走看看