[P4931 MtOI2018]情侣?给我烧了!

写两种做法。

第一种是用了类似于错排的思想。

答案是 k 个人匹配方案数乘上 n - k 个人不匹配的方案数。

k 个人匹配的方案数:先选 k 对人,再选出 k 对位置,再选出顺序,同一对之间可以交换。

\[\binom nk\binom nk k! 2^k
\]

i 对人不匹配的方案设为 \(f_i\),这相当于有 2i 个人,2i 个座位,每个人恰好有一个不能选的位置。

这和普通错排不同于它不能一个一个的选,因为如果现在只有 2i-1 个人,那么有一个人的限制就与众不同!

所以我们两个两个地考虑。

按照错排的套路,我们假设最后加进来的两个人的分别在 x 排和 y 排,假设在 x 排和 y 排另外两个人的情侣叫做 a 和 b。这还要分讨 a 和 b 是不是情侣,好像有点麻烦。

换一个思路,我们选第一排那两个不是情侣的人,先枚举这两个人分别是谁 \(2n * (2n-2)\),然后讨论他们的情侣在哪里。

  1. 他们的情侣在一起。枚举他们情侣所在排数和这两个人的相对顺序,那么剩下的方案数显然是 \(2 * (n-1) * f[n-2]\)
  2. 他们的情侣不在一起,现在剩下的 2(n-1) 个人恰好都有 1 个限制,于是是 f[n-1]

所以 \(f_n = 2n * (2n - 2) * (f_{n-1} + 2 * (n - 1) * f_{n-2})\)。

第二种是暴力的推式子大法。

设 \(f_n\) 为钦定 n 对人,剩下随意的方案数,\(g_n\) 为恰好 n 对人,也就是答案。

每个 \(g_n\) 会对 \(\binom nk\) 个 \(f_k\) 造成贡献:

\[f_i = \sum_{j=i}^n \binom jig_j
\]

二项式反演:

\[g_i = \sum_{j=i}^n(-1)^{i-j}\binom jif_j
\]

钦定 k 个人匹配的方案数:先选 k 对人,再选出 k 对位置,再选出顺序,同一对之间可以交换,剩下 2n - 2k 人随意。

\[f_k = \binom nk \binom nk k!2^k(2n-2k)!
\]

所以

\[g_k = \sum_{j=k}^n(-1)^{k-j}\binom jk\binom nj \binom nj j!2^j(2n-2j)!
\]

有一些项和 j 有关,有一些项和 n - j 有关,联想到卷积,考虑把这个式子拆成卷积的形式。

\[\begin{aligned}
g_k &= \sum_{i=0}^{n-k}(-1)^{k-n+i}\binom{n-i}{k}\binom{n}{i}\binom ni(n-i)!2^{n-i}(2i)!\\
&= {(n!)^22^k\over k!}\sum_{i=0}^{n-k} \frac{(-2)^{n-k-i}}{(n-k-i)!}\frac{(2i)!}{i!^2}\\
\end{aligned}
\]

处理卷积我目前知道两种方法,第一种是用 ntt 直接莽,第二种是把两个函数分别用写成生成函数的形式,然后乘起来。在这个题里,ntt 太慢了,考虑用生成函数。

设 \(F(x) = \sum_{i=0}^{n} \frac{(-2)^{n-i}}{(n-i)!}\frac{(2i)!}{i!^2},A(x) = \sum_{i=0}^{n} \frac{(-2)^{i}}{i!},B(x)=\sum_{i=0}^{n}\frac{(2i)!}{i!^2},F = A\times B\)。

\[\begin{aligned}
A(x) &= e^{-2x}\\
B(x) &=\sum_{i=0}^{n}\binom{2i}{i}x^i\\&= \frac1{(1-4x)^{1/2}}\\
F &= A \times B = \frac{e^{-2x}}{(1-4x)^{1/2}}
\end{aligned}
\]

生成函数转递推式的常用技巧是对 F 求导,对 F 求导后整理可得:

\[F

(x)=4xF

(x)+8xF(x)
\]

即:

\[(n+1)F[n+1]=4nF[n]+8F[n−1]
\]

把 F 求出来后再乘上前面那一大坨系数即可得到 G。

P4931 [MtOI2018\]情侣?给我烧了!的更多相关文章

  1. 洛谷 P4931 - [MtOI2018]情侣?给我烧了!(加强版)(组合数学)

    洛谷题面传送门 A 了这道题+发这篇题解,就当过了这个七夕节吧 奇怪的过节方式又增加了 首先看到此题第一眼我们可以想到二项式反演,不过这个 \(T\) 组数据加上 \(5\times 10^6\) 的 ...

  2. 洛谷P4931 情侣!给我!烧了! 数论

    正解:数论 解题报告: 传送门 这题,想不到就很痛苦,但是理解了之后还是觉得也没有很难,,,毕竟实现不难QAQ 首先关于前面k对情侣的很简单,就是C(n,k)*C(n,k)*A(k,k)*2k 随便解 ...

  3. P4921 [MtOI2018]情侣?给我烧了!

    前言 情人节写的这道题,题目名称好符合我当时的心情. 题目链接 Luogu:P4921 解法 容斥 我们发现最后要求的结果是恰好 \(k\) 对情侣坐在一起的方案数,我们就不难想到去计算恰好 \(n- ...

  4. 【洛谷P4931】 情侣?给我烧了!(加强版)组合计数

    挺有意思的一道题... code: #include <bits/stdc++.h> using namespace std; #define N 5000006 #define mod ...

  5. 洛谷 P2194 HXY烧情侣【Tarjan缩点】 分析+题解代码

    洛谷 P2194 HXY烧情侣[Tarjan缩点] 分析+题解代码 题目描述: 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里 ...

  6. 洛谷P2194 HXY烧情侣

    题目描述 众所周知,\(HXY\)已经加入了\(FFF\)团.现在她要开始喜\((sang)\)闻\((xin)\)乐\((bing)\)见\((kuang)\)地烧情侣了.这里有\(n\)座电影院, ...

  7. HXY烧情侣(洛谷 2194)

    题目描述 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要 ...

  8. HXY烧情侣

    题目描述 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要 ...

  9. P2194 HXY烧情侣【Tarjan】

    前言 当时和\(GYZ\)大佬一起做这个题,他表示这个题对他很不友好(手动滑稽) 题目描述 众所周知,\(HXY\) 已经加入了 \(FFF\) 团.现在她要开始喜(sang)闻(xin)乐(bing ...

  10. 洛谷P4931 情侣?给我烧了!(加强版)(组合数学)

    题面 传送门 题解 首先我们算出刚好有\(k\)对情侣的方案数 从\(n\)对情侣中选出\(k\)对,方案数为\({n\choose k}\) 从\(n\)排座位中选出\(k\)排,方案数为\({n\ ...

随机推荐

  1. 【原创工具】文件清单生成器 By怜渠客

    [原创工具]文件清单生成器 By怜渠客 刚在论坛看到了一个文件列表生成器 https://www.52pojie.cn/thread-2008605-1-1.html ,和我去年写的一个软件很像,当时 ...

  2. SciTech-OS-Android: 字体系列 (一):

    SciTech-OS-Android: 字体系列 (一): https://juejin.cn/post/6973064546420260878/

  3. freeswitch: ESL中如何自定义事件及自定义事件的监听

    虽然freeswitch已经内置了一些标识的事件,比如:CHANNEL_CREATE(发起呼叫时触发),CHANNEL_HANGUP_COMPLETE(电话挂断时触发)...,但是有时候我们想根据业务 ...

  4. mock测试及jacoco覆盖率

    单元测试是保证项目代码质量的有力武器,但是有些业务场景,依赖的第三方没有测试环境,这时候该怎么做Unit Test呢,总不能直接生产环境硬来吧? 可以借助一些mock测试工具来解决这个难题(比如下面要 ...

  5. 进阶篇:3.2)DFM-钣金件设计总章

    本章目的:各种钣金件工艺了解,DFM-钣金件的设计准则是依据哪种工艺. 1.钣金概念 钣金(Sheet Metal)是针对金属薄板(厚度通常在6mm以下)的一种综合冷加工工艺,包括冲裁.折弯.拉伸.成 ...

  6. android:visibility数据绑定中的属性值

    数据绑定的采坑之旅 作者:咕魂 时间:2021年3月17日14:58:20 目录 数据绑定的采坑之旅 数据绑定中的属性值 我们不能直接使用 字符串写法,字符串类型不匹配,没有效果或者直接报错 网上很多 ...

  7. SSH连接服务器正常显示GUI程序

    今天突发奇想想要将以前的一个项目做的软件优化一下, 然后把项目clone的mac上发现是需要gpu的,于是我又将项目upload到了我自己的服务器上,可是我一直是ssh去远程服务器的,我的这个软件涉及 ...

  8. PPT(三)-合并形状

    一.合并形状在哪 二.如何应用合并形状 合并形状时,先选择的元素先保留. 三.合并形状在PPT中最常用的就是用在绘制图标上 图标可以去阿里巴巴矢量图标库去下载www.iconfont.cn,然后直接插 ...

  9. AI数字人制作工具SadTalker教程

    AI数字人(Artificial Intelligence Digital Human)是一种采用人工智能技术和仿真技术创建的虚拟人物.它结合了人类外貌.语音和认知能力,能够与人类进行交流和互动. A ...

  10. 【渲染流水线】[应用阶段]-[渲染命令队列]以UnityURP为例

    应用阶段最后是CPU向GPU提交需要渲染的数据.通常数据会被复制到显存中,然后设置渲染参数,最后调用渲染接口.PC中是这样的,但是移动设备一般没有单独的显存.使用内存为GPU服务.他们使用同一内存地址 ...