• 题解 cf gym 103261 D FFT Algorithm


    传送门

    用到一个很冷门的数论定理


    【题意】

    给定数字 (m, k) ,求一个数字 (omega) 使得 ( ext{ord}_m(omega)=2^k)

    ( ext{ord}_m(a)) 表示数字 (a) 在群 (<Z_m, otimes_m>) 下的阶,即 (a^{ ext{ord}_m(a)}equiv 1pmod mwedge a^k otequiv 1pmod m(0leq k< ext{ord}_m(a)))


    【分析】

    由 Carmichael 函数的定义得,对于 (m) 的 Carmichael 函数 (lambda(m)) ,表示 (forall gcd(a, m)=1 o a^{lambda(m)}equiv 1pmod m)

    而根据 Carmichael 定理, (lambda(p^k)=egin{cases} oldsymbol varphi(p^k),p>2vee k<3 \\{1over 2}oldsymbol varphi(p^k),p=2wedge kgeq 3 end{cases})

    且根据中国剩余定理,若 (displaystyle m=prod_{i=1}^tp_i^{k_i}) 则根据 (a^{lambda(m)}equiv 1pmod m)(a^{lambda(m)}equiv 1equiv a^{lambda(p_i^{k_i})}pmod {p_i^{k_i}})

    从而得到 (lambda(p_i^{k_i})mid lambda(m)) ,故 (displaystyle lambda(m)= ext{lcm}_{1leq ileq t}lambda(p_i^{k_i}))

    若存在数字 (omega) 使得 ( ext{ord}_m(omega)=2^k)(2^kmid lambda(m)) ,故 (exists p_iwedge 2^kmid lambda(p_i^{k_i}))

    ((p_i=2wedge k_i-1-[k_igeq 3]geq k)vee(2^kmid (p_i-1)))

    题解这一段枚举到 (sqrt{mcdot 2^{-k}}) 系数,转质数的方法我没理解,但使用 Pollard_Rho 在 (O(m^{1over 4})) 的时间内分解质因数应该是可行的

    如果分解后,判定优解,则对于 (2^kmid lambda(p_i^{k_i})) 的奇质因数 (p_i) ,其存在 (oldsymbol varphi(lambda(p_i^{k_i}))) 个原根,直接随机化获取原根 (g),则可得到 ((g^{lambda(p_i^{k_i})cdot 2^{-k}})^{2^k}equiv 1equiv omega^{2^k}pmod {p_i^{k_i}})

    (omegaequiv g^{lambda(p_i^{k_i})cdot 2^{-k}}pmod {{p_i}^{k_i}})

    (p_i=2)(2^kmid lambda(p_i^{k_i})) ,题解说也存在 (oldsymbol varphi(lambda(p_i^{k_i}))) 个根 (r),使得 ( ext{ord}_{p_i^{k_i}}(r)=lambda(p_i^{k_i})) ,也可以随机化得到,然后同上得到 (omegaequiv r^{lambda(p_i^{k_i})cdot 2^{-k}}pmod {{p_i}^{k_i}})

    对于不满足的,直接得到 (omegaequiv 1pmod {p_i^{k_i}})

    最后,得到若干同余方程。由于模数均是原数的质因数分解,故模数互质,直接 CRT 合并即可


    【代码】

    有点难码,先咕咕咕了,后期回来填坑

  • 相关阅读:
    外媒曝Snapchat“被追”全过程:腾讯最先出手 脸书谷歌跟风
    Instagram
    阅后即焚
    Snapchat
    WhatsApp
    Facebook
    优酷网Youku
    土豆网与Youtube比较
    土豆网
    YouTube
  • 原文地址:https://www.cnblogs.com/JustinRochester/p/15391288.html
Copyright © 2020-2023  润新知