P4931 [MtOI2018\]情侣?给我烧了!
[P4931 MtOI2018]情侣?给我烧了!
写两种做法。
第一种是用了类似于错排的思想。
答案是 k 个人匹配方案数乘上 n - k 个人不匹配的方案数。
k 个人匹配的方案数:先选 k 对人,再选出 k 对位置,再选出顺序,同一对之间可以交换。
\]
i 对人不匹配的方案设为 \(f_i\),这相当于有 2i 个人,2i 个座位,每个人恰好有一个不能选的位置。
这和普通错排不同于它不能一个一个的选,因为如果现在只有 2i-1 个人,那么有一个人的限制就与众不同!
所以我们两个两个地考虑。
按照错排的套路,我们假设最后加进来的两个人的分别在 x 排和 y 排,假设在 x 排和 y 排另外两个人的情侣叫做 a 和 b。这还要分讨 a 和 b 是不是情侣,好像有点麻烦。
换一个思路,我们选第一排那两个不是情侣的人,先枚举这两个人分别是谁 \(2n * (2n-2)\),然后讨论他们的情侣在哪里。
- 他们的情侣在一起。枚举他们情侣所在排数和这两个人的相对顺序,那么剩下的方案数显然是 \(2 * (n-1) * f[n-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\) 造成贡献:
\]
二项式反演:
\]
钦定 k 个人匹配的方案数:先选 k 对人,再选出 k 对位置,再选出顺序,同一对之间可以交换,剩下 2n - 2k 人随意。
\]
所以
\]
有一些项和 j 有关,有一些项和 n - j 有关,联想到卷积,考虑把这个式子拆成卷积的形式。
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\)。
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 求导后整理可得:
′
(x)=4xF
′
(x)+8xF(x)
\]
即:
\]
把 F 求出来后再乘上前面那一大坨系数即可得到 G。
P4931 [MtOI2018\]情侣?给我烧了!的更多相关文章
- 洛谷 P4931 - [MtOI2018]情侣?给我烧了!(加强版)(组合数学)
洛谷题面传送门 A 了这道题+发这篇题解,就当过了这个七夕节吧 奇怪的过节方式又增加了 首先看到此题第一眼我们可以想到二项式反演,不过这个 \(T\) 组数据加上 \(5\times 10^6\) 的 ...
- 洛谷P4931 情侣!给我!烧了! 数论
正解:数论 解题报告: 传送门 这题,想不到就很痛苦,但是理解了之后还是觉得也没有很难,,,毕竟实现不难QAQ 首先关于前面k对情侣的很简单,就是C(n,k)*C(n,k)*A(k,k)*2k 随便解 ...
- P4921 [MtOI2018]情侣?给我烧了!
前言 情人节写的这道题,题目名称好符合我当时的心情. 题目链接 Luogu:P4921 解法 容斥 我们发现最后要求的结果是恰好 \(k\) 对情侣坐在一起的方案数,我们就不难想到去计算恰好 \(n- ...
- 【洛谷P4931】 情侣?给我烧了!(加强版)组合计数
挺有意思的一道题... code: #include <bits/stdc++.h> using namespace std; #define N 5000006 #define mod ...
- 洛谷 P2194 HXY烧情侣【Tarjan缩点】 分析+题解代码
洛谷 P2194 HXY烧情侣[Tarjan缩点] 分析+题解代码 题目描述: 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里 ...
- 洛谷P2194 HXY烧情侣
题目描述 众所周知,\(HXY\)已经加入了\(FFF\)团.现在她要开始喜\((sang)\)闻\((xin)\)乐\((bing)\)见\((kuang)\)地烧情侣了.这里有\(n\)座电影院, ...
- HXY烧情侣(洛谷 2194)
题目描述 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要 ...
- HXY烧情侣
题目描述 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要 ...
- P2194 HXY烧情侣【Tarjan】
前言 当时和\(GYZ\)大佬一起做这个题,他表示这个题对他很不友好(手动滑稽) 题目描述 众所周知,\(HXY\) 已经加入了 \(FFF\) 团.现在她要开始喜(sang)闻(xin)乐(bing ...
- 洛谷P4931 情侣?给我烧了!(加强版)(组合数学)
题面 传送门 题解 首先我们算出刚好有\(k\)对情侣的方案数 从\(n\)对情侣中选出\(k\)对,方案数为\({n\choose k}\) 从\(n\)排座位中选出\(k\)排,方案数为\({n\ ...
随机推荐
- 迁移学习&在线学习
简介 英文: transfer learning 以已训练好的模型A为起点,在新场景中,根据新数据建立模型B 目的:将某个领域或任务上学习到的知识或模式,应用到不同但相关的领域或问题中. 特征提取 使 ...
- .NET周刊【7月第1期 2025-07-06】
国内文章 .NET中全新的MongoDb ORM框架 - SqlSugar https://www.cnblogs.com/sunkaixuan/p/18959484 .NET中MongoDB ORM ...
- R实数系的连续性与数系的扩充历史
实数系的连续性: 实数集合R重要的基本性质-"连续性" "确界存在定理"就是R连续性在分析角度的多种等价表述之一. 数系的扩充历史 N自然数集合: N上&quo ...
- SciTech-Hardware-SoC/FPGA-ASIC 设计 之 System C: 使用SystemC做 系统建模(硬件+软件) 以及 RTL和C/C++ 的联合仿真验证
SystemC: The language for System-level design, modeling and verification. SystemC addresses the need ...
- SciTech-Mathmatics-Trigonometric function三角函数-基础知识 + Number Theory数论 + Set Theory集合论{有限集(与自然数集1:1对应), 权势, 无限集}
数论: 在 周长为 \(1\pi\) (半径为1/2) 的圆上, 任选一点作为0点, 顺时针有序放置所有的\(\large N自然数\), Question: 什么情况会出现重合的两个自然数点 ? S ...
- Unity使用LoadImage 读取byte[]图片时,会出现白边问题
直接上代码 /// <summary> /// 修复图片导入时白边问题 /// </summary> /// <param name="texture" ...
- 全志T113核心板一张表介绍其参数|性能|功耗|-盈鹏飞嵌入式
随着市场应用的逐渐细化,细分市场的处理器逐渐浮出水面,盈鹏飞嵌入式顺应市场大势,推出了以全志主控T113-i/S3/S4和A40I(T3)的相关核心模块产品和主板,那么这些处理器到底有什么优势?用户该 ...
- Django缓存机制详解:从配置到实战应用
一.缓存基础与环境准备 什么是缓存? 缓存是指保存计算密集型操作的结果,当再次需要该结果时直接从缓存中获取,而无需重新计算.在 Django 中,缓存可以应用于不同粒度: 整个网站缓存 特定视图缓存 ...
- MHA(Master High Availability) 和 MGR(MySQL Group Replication)对比
MySQL 高可用领域中,MHA(Master High Availability) 和 MGR(MySQL Group Replication) 是两种代表性的解决方案,但它们在 ...
- Java泛型中<?>和<T>的区别浅析
https://www.jb51.net/article/270336.htm 一.定义 1.T 代表一种类型 可以加在类上,也可以加在方法上 1)T 加在类上 1 2 3 class SuperCl ...