鲲鲲来啦!
传送门
题解
比较好玩的一个数数题。
考虑如何计算有连续4个位置的同学依次喜欢唱、跳、rap、篮球的情况的数量。
首先可以枚举这种四元组的数量,设有$i$个四元组。
那么这些四元组的出现位置的方案数就为$\tbinom{n-3i}{i}$。
证明:
首先这些四元组显然是两两不交的。
考虑一排点,共有有$n-3i$个,选择$i$个点将它们展开成一个四元组,那么展开之后一共有$n$个点,刚好对应一种出现位置的方案,一共有$\binom{n-3i}{i}$种选择方法。
证毕。
除了四元组之外,考虑其他位置上的同学怎么安排。
如果随便排的话,可能会再次产生四元组,考虑通过容斥把多算的减掉。
所以含有四元组的方案数为:
考虑剩下位置的方案数怎么算,设喜欢唱、跳、rap、篮球的人分别取了$e,f,g,h$个$(e\leq a-i,f\leq b-i,g\leq c-i,h\leq d-i)$,那么方案数就是:
所以就可以构四个多项式,其中第一个为:
剩下三个多项式同理。然后把四个多项式用NTT卷乘起来,$x^{n-4i}$项的系数就是我们所要求的剩下位置的方案数。
由于要求的是不包含任意一个四元组的方案数,所以最后的答案为:
时间复杂度$O(n^2\log n)$。
代码
1 |
|