1 条题解
-
0
Guest
MOD
-
0
方法一:容斥
以生成的所有可能序列为全集 ,那么对于每一个序列,只可能有三种情况:
- 前 个数的和 后 个数的和;
- 前 个数的和 后 个数的和;
- 前 个数的和 后 个数的和;
其中前两个情况一定是一一对应的(交换前 个数和后 个数即可),数量一定相同,于是考虑第三种情况。
问题转化为:求前 个数和后 个数的和相同的概率 。
所有数在 ,前 个和后 个相同,可以看作前 个在 中,后 个在 中,和为 的方案数。
给后 个数加上 ,则等价于所有元素在 中,和为 的方案数。
那么问题就转化为了一个容斥原理经典模型:对于 ,钦定 个不满足上界限制,将它们减掉 。
方案数就是 ,,总方案数为 。
那么所求概率 ,最终答案为 。
方法二:生成函数
设 是前 个数的和与后 个数的和相等的概率,答案为 。
记前 个数的和的生成函数为:
$$F(x)=\sum_{i=0}^{nm}f_ix^i=(\dfrac{1-x^{m+1}}{1-x})^n $$那么 。
看起来要把 的所有系数 都求出来,很困难。但发现 ,于是:
$$\begin{aligned}\sum_{i=0}^{nm}f_i^2=\sum_{i=0}^{nm}f_if_{nm-i}&=[x^{nm}]F(x)^2\\&=x^{nm}^{2n}\\&=\sum_{i=0}^{2n}(-1)^i\binom{2n}{i}\binom{2n-1+mn-i(m+1)}{2n-1}\end{aligned} $$于是预处理出 范围内的阶乘即可 求出单组答案。
时间复杂度为 。
- 1
信息
- ID
- 2711
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者