• CF1528F AmShZ Farm 题解


    Luogu
    Codeforces

    Description.

    称一个数列 \(\{a_i\}\) 是好的,当且仅当 \(\exists \{b_i\}\),满足

    • \(\forall i\in[1,n],b_i\ge 0\)
    • \(\{a_i+b_i\}\) 是个排列。

    一个数列的权值是所有数出现次数的 \(k\) 次方和。
    求所有好序列的权值和。

    \(n\le 10^9,k\le 10^5\)

    Solution.

    国 外 计 数 水 平

    首先考虑什么样的数列是好的。
    一个判断方式是从前往后遍历,对于每个数不断 \(+1\),直到不在前面出现过。
    这个判断方式显然是正确的,考虑这个的意义。
    发现和这题很类似。
    考虑相同的套路,增加一个虚点,值域调成 \([1,n+1]\),填到 \(n+1\) 就不合法。
    现在这个环上只有一个 \(n+1\) 没有被填上,但是我们要统计权值和。

    如果把这个环循环移位 \(0,1,\cdots,n\),那肯定包含了所有合法序列。
    而同时,每种颜色的贡献也相同的,答案是一种颜色的贡献 \(\times (n+1)\times \frac 1{n+1}\)
    而一种颜色的贡献是 \(\sum_{i=0}^n\dbinom nin^{n-i}i^k\),相当于枚举颜色其他随便选。

    然后就推式子,如下。

    \[\begin{aligned} &=\sum_{i=0}^n\dbinom nii^kn^{n-i}\\ &=\sum_{i=0}^n\dbinom nin^{n-i}\sum_{j=0}^{\min(k,i)}\begin{Bmatrix}k\\j\end{Bmatrix}i^{\underline j}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}\sum_{i=j}^n\frac{n!}{i!(n-i)!}n^{n-i}\frac{i!}{(i-j)!}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}\frac{n!}{(n-j)!}\sum_{i=j}^n\frac{(n-j)!}{(n-i)!(i-j)!}n^{n-i}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}\frac{n!}{(n-j)!}\sum_{i=j}^n\dbinom{n-j}{n-i}n^{n-i}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}\frac{n!}{(n-j)!}\sum_{i=0}^{n-j}\dbinom{n-j}{i}n^{i}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}\frac{n!}{(n-j)!}(n+1)^{n-j}\\ \end{aligned} \]

    然后就做完了。

    Coding.

    点击查看代码
    哈哈不给
    
  • 相关阅读:
    查询AD账号的SID
    Linux下NFS搭建实验
    定制windows环境下cmd替代软件ConEmu
    [转载]硬盘MBR详细介绍
    HP_UX扩dump空间
    zero和null以及sparse
    Cisco MDS9222i光纤交换机最常用排错命令
    Brocade SAN Switch上简单配置AG
    RHEL环境下调试Shell脚本时遇到字符串转换整数的问题
    Brocade SAN SWITCH配置文件导出和恢复
  • 原文地址:https://www.cnblogs.com/pealfrog/p/15419152.html
Copyright © 2020-2023  润新知