洛谷4921
Description
有
对情侣来到电影院观看电影。在电影院,恰好留有 排座位,每排包含 个座位,共 个座位。 现在,每个人将会随机坐在某一个位置上,且恰好将这 个座位坐满。 如果一对情侣坐在了同一排的座位上,那么我们称这对情侣是和睦的。 你的任务是求出当 时,共有多少种不同的就坐方案满足恰好有 k 对情侣是和睦的。 两种就坐方案不同当且仅当存在一个人在两种方案中坐在了不同的位置。不难发现,一共会有 种不同的就坐方案。 Input
输入包含多组数据。 输入的第一行包含一个正整数
,表示数据的组数。 接下来 行,每行包含一个正整数 。 Output
对于每组输入数据,输出共
行,每行包含 个整数,分别表示 时满足恰好有 对情侣是和睦的就坐方案数。由于结果可能较大,因此输出对 取模的结果。 Sample Input
1
2
3 2
1
2Sample Output
1
2
3
4
5 0
2
16
0
8Hint
本题只有一个
的数据点。。。暴力还是算了吧!
Solution
看到第一眼我会
并没有怎么做过错排于是就直接看题解了
记
首先我们从
然后呢?考虑剩下的被拆散的
记
所以可以得到
类似错排考虑最后一个放哪里的方法,我们考虑最后一排的两个人的情况 现在这两个人有三种情况
- 两男 这两个人有
种选法,考虑他们的两个配偶 - 钦定这两个女生不坐一起,所以把她俩看作一对CP防止配对
(橘里橘气)方案数为 - 钦定这两个女生坐一起,共有
排位置可坐,两人可以交换位置,剩下 对CP还是要被拆散,即方案数为
- 钦定这两个女生不坐一起,所以把她俩看作一对CP防止配对
- 两女 同两男即可
- 一男一女(并不是CP)还是一样的考虑他们的两个配偶,转移类似,不过注意的是这一男一女的选择方案数是
而不是 (男A女B和男B女A两种)
所以得到递推式
Code
1 |
|