P5400 [CTS2019] 随机立方体 题解
\(\text{P5400 [CTS2019] 随机立方体 题解}\)
等价于计算方案数。首先恰好 \(k\) 个极大的数这个东西我们显然没法直接处理,于是转成钦定。记 \(f(k)\) 表示钦定有 \(k\) 个极大的数的方案,那么要求的就是 \(\sum_{i=k}^u {i\choose k}(-1)^{i-k}f(i)\)。但看上去 \(u\) 很大,做不了。但是读题后会发现 \(u\le\min(n,m,l)\),这是显然的。那么问题就变为了均摊 \(O(n)\) 求出 \(f(i)\)。
记 \(T=n\times m\times l\)。先考虑列出钦定的 \(k\) 个位置,这个东西方案数实际上就是从三维各选 \(k\) 个点任意组合,我们记 \(g(i)=(n-i)!(m-i)!(l-i)!\),那么这个值也就是 \(\frac 1{k!}g(i)\)。然后考虑无限制的所有点的方案数。首先无限制的所有点的个数容易知道是 \(T-g(k)\),我们记这个东西为 \(G(k)\),那么安排值的方案数显然是 \({T\choose G(k)}G(k)!\)。现在的问题是考虑如何计算有限制的点内部的答案。
首先这 \(k\) 个点我们可以随意钦定顺序,因此有 \(k!\) 的贡献系数。然后考虑内部如何来选值。发现这个东西的难点在于对于确定第 \(i\) 大所影响的值后,还有一些值会被更大的值影响,而在这里考虑的话选的值不一定小于后面能影响到它的点的值。所以我们考虑统计只能被第 \(i\) 大的值所影响到的点的贡献,这个东西的个数容斥一下相当于是没有被第二大的点影响的点的个数减去没有被第一大的点影响的点的个数,也就是 \(g(i)-g(i+1)\) 即 \(G(i+1)-G(i)\)。第一大的点的取值是固定的,因此这里的方案数就是 \(A_{G(i+1)-1}^{G(i+1)-G(i)-1}\),化简一下是 \(\frac{(G(i+1)-1)!}{G(i)!}\),也就是 \(\prod_{i=1}^k\frac{(G(i)-1)!}{G(i-1)!}\)。最后汇总一下 \(f(k)\) 的式子,相当于是 \(g(k)!({T\choose g(k)})\prod_{i=0}^{k-1}g(i)\prod_{i=1}^k\frac{(G(i)-1)!}{G(i-1)!}\),简单提取一下就是 \(\frac{1}{G(k)!}\prod_{i=0}^{k-1}g(i)\prod_{i=1}^k\frac{G(i)-1}{G(i-1)!}\),直接做会炸,再次提取后最终的答案式子是 \(f(k)=\prod_{i=0}^{k-1}g(i)\prod_{i=1}^k\frac{1}{G(i)}\),那就做完了。

浙公网安备 33010602011771号