• Codeforces923E


    [ egin{aligned} prod_{i=1}^{k} frac{1}{1- ho_ix}&=sum_{i=1}^{k}frac{a_i}{1- ho_ix}\ 1&=sum_{i=1}^{k}a_iprod_{j e i}(1- ho_jx) end{aligned}]

    将 $ x = frac{1}{ ho_n} $ 代入

    [egin{aligned} 1 &= a_nprod_{j e n}(1-frac{ ho_j}{ ho_n})\ a_n &= frac{1}{prod_{j e n}(1-frac{ ho_j}{ ho_n})}\ &= frac{ ho_n^{k-1}}{prod_{j e n}( ho_n- ho_j)} end{aligned} ]

    代入原式

    [egin{aligned} [x^n]prod_{i=1}^{k}frac{1}{1- ho_ix}&=sum_{i=1}^{k}a_i ho_i^n\ &= sum_{i=1}^{k}frac{ ho_i^{n+k-1}}{prod_{j e i}( ho_i- ho_j)} end{aligned} ]

    考虑 $ B $ 这个数经过 $ m $ 轮变成 $ A $ 的概率

    [[x^{m-1}]frac{1}{B+1}prod_{i=A}^{B}frac{1}{1-frac{1}{i+1}x} ]

    [egin{aligned} &= frac{1}{B+1} sum_{i=A}^{B}frac{(frac{1}{i+1})^{m+B-A-1}}{prod_{j e i}(frac{1}{i+1}-frac{1}{j+1})}\ &= frac{1}{B+1} sum_{i=A}^{B}frac{(frac{1}{i+1})^{m+B-A-1}}{prod_{j e i}(frac{j-i}{(i+1)(j+1)})}\ &= frac{1}{B+1} sum_{i=A}^{B}frac{(frac{1}{i+1})^{m-1}}{prod_{j e i}(frac{j-i}{j+1})}\ &= frac{1}{B+1} frac{(B+1)!}{A!}sum_{i=A}^{B}frac{1}{i+1}frac{(frac{1}{i+1})^{m-1}}{prod_{j e i}(j-i)}\ &= frac{B!}{A!}sum_{i=A}^{B}frac{(frac{1}{i+1})^m}{(i-A)!cdot-1^{i-A}cdot(B-i)!} end{aligned} ]

    最终变为 A 这个数的概率是

    [sum_{B=A}^{n} frac{B!}{A!} p_{B} sum_{i=A}^{B}frac{(frac{1}{i+1})^m}{(i-A)!cdot-1^{i-A}cdot(B-i)!} ]

    发现直接算不好算,我们先计算 B 到 $ i $ 的贡献,再把贡献算到 A 上

    [frac{1}{A!}sum_{B=A}^{n} B! cdot p_{B} sum_{i=A}^{B} (frac{1}{i+1})^mcdotfrac{1}{(i-A)!cdot-1^{i-A}}cdotfrac{1}{(B-i)!} ]

    定义 $ f_i $ 表示 $ i $ 之后所有的 B 对 $ i $ 的贡献,可以得到

    [f_i = left(frac{1}{i+1} ight)^msum_{B=i}^{n} B!cdot p_B frac{1}{(B-i)!} ]

    容易发现这是卷积的形式,然后就可以轻松得出变成 A 的概率

    [ans_A = frac{1}{A!} sum_{i=A}^{n} frac{1}{(i-A)!cdot -1^{i-A}} ]

    仍然是卷积的形式

  • 相关阅读:
    文档API
    vi编辑器常用方法
    storm实战入门一
    redis教程
    为redis分配一个新的端口
    Lucene分页查询
    Lucene搜索方式大合集
    HBase Scan类用法
    java.util.Queue用法
    Makefile中预定义变量
  • 原文地址:https://www.cnblogs.com/LJC00118/p/13605480.html
Copyright © 2020-2023  润新知