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.

点击查看代码
哈哈不给
原文地址:https://www.cnblogs.com/pealfrog/p/15419152.html