• loj3120. 「CTS2019 | CTSC2019」珍珠


    题意

    你有(n)个物品,每个物品的颜色(c in [1, D]),你可以给这些物品同色的两两配对,求满足配对数大于等于(m)的染色方案数。
    (n, m leq 1e9, D leq 1e5)

    题解

    问题等价于求满足有奇数个物品的颜色数不超过(n - 2m)个的染色方案数。
    (f_{i, j})代表考虑前(i)个物品后,有(j)种颜色有奇数个物品的方案数。这个东西是比较高档的暴力。
    再说说正解。
    由于(n, m)都很大,所以考虑生成函数。
    对于某种颜色,有奇数个物品的生成函数为(frac {e ^ x - e ^ {-x}}{2})
    (f_i)表示至少(i)种颜色有奇数个物品的方案数。
    则有

    [f_i = inom {D}{i} n! [x ^ n] (frac {e ^ x - e ^ {-x}}{2}) ^ i {e ^ x} ^ {(D - i)} ]

    整理一下式子,最终可以得到

    [f_i = frac{i! inom{D}{i}}{2 ^ i} sum_{j = 0} ^ i (-1) ^ j frac{(D - 2j) ^ n}{j! (i - j)!} ]

    ntt得到(f)后再二项式反演一下即可。

  • 相关阅读:
    EF Core 打印日志
    生成各种开源挂件的网址
    .NET Core 原生 Aop,不依赖任何第三方
    .NET Core + Castle.DynamicProxy 拦截
    EF Core 审计日志
    Gitee 接口大全
    VS 批量新增文件头
    Linq 完全指南
    swagger转word
    大型网站架构
  • 原文地址:https://www.cnblogs.com/psimonw/p/11545232.html
Copyright © 2020-2023  润新知