zoukankan      html  css  js  c++  java
  • ZJOI2019 开关

    ZJOI2019 开关

    给定长度为 (n) 的序列 (s),每个点被选择的概率为 (frac{p_i}{sum p_i}),对于全 (0) 序列,每次操作为翻转一个值,求期望操作多少次可以得到目标序列。

    (nle 100,sum p_ile 5cdot 10^4)

    ( m Sol:)

    似乎有 OGF 的推导方法和集合幂级数的推导方法。


    神仙题。

    集合幂级数

    我们先考虑一个高斯消元:

    [f_i=1+sum_{Toplus j=i}f_jcdot p_j ]

    我们构建一个集合幂级数 (F(x)=sum f_ix^i)

    另一边,我们构建 (G(x)=sum_{j} p_jx^j),那么我们有:

    [F(x)=sum_{i} x^i+G(x)cdot F(x)+ccdot x^{|varnothing|} ]

    最后一项表示消去 (x^{varnothing}) 的系数。

    那么考虑 FWTxor 的结果,对于集合 (u),其结果为:

    [mathscr{F(x)_{u}= extrm{FWT}(sum_{i} x^i)+G(x)cdot F(x)+ extrm{FWT}(ccdot x^{|varnothing|})} ]

    对于 ( m xorFWT),我们知道 ( extrm{FWT}(ccdot x^{|varnothing|})_k=c),同时我们进行移位得到:

    [mathscr{F(x)_u(1-G(x))}=sum_{k} (-1)^{uland k}+c ]

    (u=0) 时,我们有 ( extrm{FWT}(G(x))=sum_k p_icdot (-1)^{kland 0}=sum_k p_k=1)

    所以我们有:

    [0=2^n+c o c=-2^n ]

    所以我们得到,对于 (k e 0),有:

    [ extrm{FWT}( F(x))=frac{sum_k (-1)^{uland k}-2^n}{1- extrm{FWT}(G(x))} o frac{-2^n}{1- extrm{FWT}(G(x))} ]

    对于 (k=0),有:

    [ extrm{FWT}(F(x))_0=sum F(x)_k ]

    [ extrm{FWT}(F(x))_0=sum extrm{IFWT}( extrm{FWT}(x))_k ]

    注意到 (F(x)_{0}=0),所以我们有:

    [ extrm{FWT}(F(x))_0=sum_{k e 0} sum_j frac{1}{} ]

    [ extrm{FWT}(F(x))_0=sum_{k e 0} frac{2^n}{1- extrm{ FWT}(G(x))} ]

    我们所求的答案即为 (f_{S}) 即:

    [egin{aligned} &frac{1}{2^n}sum extrm{FWT}(F(x))_ucdot (-1)^{uland S} \ &=frac{1}{2^n}igg(sum_{u e 0} frac{-2^n}{1- extrm{FWT}(G(x))_u}cdot (-1)^{uland S}+sum_{u e 0}frac{2^n}{1- extrm{FWT}(G(x))}igg) \&=sum_{u e 0}frac{1}{1- extrm{FWT}(G(x))_u}cdot (1-(-1)^{uland S}) \&=2sum_{u e 0}frac{1}{1- extrm{FWT}(G(x))_u}[|uland S|mod 2=1] end{aligned}]

    另一边,我们注意到 ( extrm{FWT}(G(x))=sum (-1)^{kland S}p_i)

    注意到 (sum p_i=1),所以我们有 ( extrm{FWT}(G(x))=sum (-1)^{kland S}p_k=sum_{k ot in S} p_k-sum_{k in S}p_i=1-2sum_{kin S} p_k),于是可以得到答案为:

    [2sum_{u e 0}frac{1}{2sum_{k in u} p_k}[|uland S|mod 2=1] ]

    [sum_{u e 0}frac{1}{sum_{k in u} p_k}[|uland S|mod 2=1] ]

    可以 (mathcal O(2^n)) 处理,注意到值域较小,可以考虑进行 01 背包的 dp,复杂度为 (mathcal O(sum pcdot n))

  • 相关阅读:
    肯德基也会出这档子事?
    全球华人大签名反对日本成为安理会常任理事国
    Google "invasion" into our desktop
    你真的认真考虑过周期性的构建工作的对于项目成功重要性吗?
    [Eclipse笔记]Give TestNG a try in Eclipse.
    .NET, 想说爱你不容易
    [Eclipse笔记]Just for fun – 在Eclipse下编译和运行C#的代码
    面试注意事项
    名字隐藏深入研究what's in class (什么“类”的“接口”/一部分)
    Catalan数——卡特兰数
  • 原文地址:https://www.cnblogs.com/Soulist/p/13656539.html
Copyright © 2011-2022 走看看