Luogu P5339「TJOI2019」唱、跳、rap 和篮球 题解

博客详细解析了Luogu P5339题目,利用容斥原理、生成函数和NTT(快速傅里叶变换)来解决具有特定限制条件的排列问题。讨论了如何计算至少有k个聚集区间的方案数,通过转换问题和卷积操作找到解决方案,并分析了时间复杂度。
摘要由CSDN通过智能技术生成

题意就不用讲了吧……

鸡你太美!!!

题意:

4 4 4 种喜好不同的人,分别最爱唱、跳、 r a p rap rap、篮球,他们个数分别为 A , B , C , D A,B,C,D A,B,C,D ,现从他们中挑选出 n n n 个人并进行排列,规定不能出现喜爱唱、跳、 rap、篮球的人在序列中依次出现,问合法方案数。

下文将喜爱唱、跳、 r a p rap rap、篮球的人依次出现的区间称为聚集区间,长度为 4 4 4

思路(容斥原理 + 生成函数 + N T T \mathcal{NTT} NTT

首先,我们可以发现如果顺着求方案数并不好求。秉持顺难逆易的原则,我们可以考虑容斥,令 f ( k ) f(k) f(k) 表示在长度为 n n n 的序列中出现了至少 k k k 个聚集区间的方案数,进而我们得出: A n s w e r = ∑ k ( − 1 ) k f ( k ) Answer=\displaystyle\sum_{k}(-1)^{k}f(k) Answer=k(1)kf(k)

接下来,我们的目标就是求出 f ( k ) f(k) f(k)。我们可以设这 k k k 个聚集区间的起始位置 i i i,并把 i , i + 1 , i + 2 , i + 3 i,i+1,i+2,i+3 i,i+1,i+2,i+3 缩为一个点,这样就一共剩下 n − 3 k n-3k n3k 个点,接着,我们就可以从这 n − 3 k n-3k n3k 个点中选取不在聚集区间内的点,这样的点一共有 n − 4 k n-4k n4k 个,所以方案数为 ( n − 3 k n − 4 k ) = ( n − 3 k k ) \binom{n-3k}{n-4k}=\binom{n-3k}{k} (n4kn3k)=(kn3k)

我们设 S ( a , b , c , d , n ) S(a,b,c,d,n) S(a,b,c,d,n) 表示 4 4 4 种人的数量分别有 a , b , c , d a,b,c,d a,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值