• 二项式反演


    公式 1

    [g(n) = sum_{i = 0}^n inom n if(i) ]

    [f(n) = sum_{i = 0}^n (-1)^{n - i} inom n ig(i) ]

    证明

    [f(n) = sum_{i = 0}^n(-1)^{n - i} inom n i g(i) ]

    [= sum_{i = 0}^n (-1)^{n - i} inom ni sum_{j = 0}^i inom i j f(j) ]

    [=sum_{j = 0}^nf(j)sum_{i = j}^ninom n i inom i j (-1)^{n - i} ]

    [= sum_{j = 0}^n f(j) sum_{i = j}^ninom n j inom {n - j} {i - j} (-1)^{n - i} ]

    [= sum_{j = 0}^ninom n j f(j) sum_{i = 0}^{n- j} inom {n - j} i (-1)^{n - j - i} ]

    [= sum_{j = 0}^n f(j) (inom n jsum_{i = 0} ^{n - j} (1 - 1)^{n - j} ) ]

    [=f(n) ]

    公式 2

    [g(k) = sumlimits_{i = k} ^ n inom i k f(i) ]

    [f(k) = sumlimits_{i = k} ^ n inom i k g(i)* (-1) ^ {i - k} ]

    证明

    [g(k) = sumlimits_{i = k} ^ n inom i k sumlimits_{j = i} ^ n inom j i g(j) * (-1) ^ {j - i} ]

    [= sum_{j = k} ^n g(j) sum_{i = k} ^j inom j i inom i k (-1) ^ {j - i} ]

    [= sum_{j = k} ^n g(j)sum_{i = k} ^ j inom j k inom {j - k} {i - k} (-1)^ {j - i} ]

    [= sum_{j = k}^n g(j) inom j k sum_{i = 0} ^ {j - k} inom {j - k} i (-1) ^{j - k - i} ]

    [= sum_{j = k}^n g(j) inom j k (1 - 1) ^ {j - k} ]

    [= g(k) ]

    例题

    题意

    (n) 个相邻格子, (m) 种颜色, 每种颜色有价值 (v_i)(m) 种颜色喷涂到格子上,要求相邻格子颜色不相同,每种颜色的价值只算一遍,求格子总价值的期望,由于答案过大,你只需要求出答案 (mod 998244353) 即可

    (n leq 1e16, m leq 2000)

    解法

    (g(m))(m) 种颜色随便喷涂的方案数

    显然

    [g(m) = m * (m - 1) ^ {n - 1} ]

    (f(m)) 为恰好用 (m) 种颜色的方案数

    [g(m) = sum_{i = 0}^m inom m i f(i) ]

    [f(m) = sum_{i = 0}^m (-1) ^ {m - i} inom m i g(i) ]

    [total = sum_{i = 1}^m v_i ]

    [E = sum_{i = 0}^m frac {f(i)} {g(m)} * inom m i i * frac { total} m ]

  • 相关阅读:
    【原】戏说Java
    git分支branch合并到主分支master
    环境搭建
    zookeeper简单实战
    zookeeper介绍
    临时表与中间表
    避免活跃性
    sss
    sss
    sss
  • 原文地址:https://www.cnblogs.com/XiaoVsun/p/13054162.html
Copyright © 2020-2023  润新知