• Grakn Forces 2020 I. Bitwise Magic


    题意

    给定(k,c),再给定长度为(n)的序列((1le nle 2^c-k),(kle a_ile 2^c-1)
    进行(k)次操作,每次选择一个位置给(a_i-1)
    (k)次操作后,最后异或和为(x)的概率为多少
    输出(x)分别为(0sim 2^c-1)时的答案
    (k,cle 16)

    做法

    求方案数,写成指数多项式的形式。另外对常数项(x),定义(x^i imes x^j=x^{ioplus j})
    (egin{aligned} F(z)=prodlimits_{i=1}^n(sumlimits_{j=0}^k x^{a_i-koplus a_i}frac{z^j}{j!}) end{aligned})

    (x)沃什变换,对每一位单独处理
    暴力计算是(O(2^ck^2n+2^cc))

    我们发现,对于序列({b_i=a-ioplus a}),对于题目给出的限制,最多只有(192)种不同的序列
    这样直接算是(O(2^ck^2192))的,不过这样还是过不了

    有个小优化,对于位置(i),可以把({c_k=ioplus k\% 2})相同的再压一下,然后用(k^2)算某多项式的次幂
    然后总共只要算(1400490)个不同的多项式
    复杂度(O(1400490k^2))

  • 相关阅读:
    注册审核
    静态表单验证
    多条件查询
    0623TP框架联系
    0618框架 增删改练习
    php框架 数据添加
    0616框架查询
    0614空操作方法 空控制器 跨控制器调用 命名空间
    php 0613框架基础
    php查询
  • 原文地址:https://www.cnblogs.com/Grice/p/13782423.html
Copyright © 2020-2023  润新知