10.容斥原理拓展

10.1 二项式反演

\[P.10.1(1)
\]

设 \(U=\{S_1,S_2,S_3...S_n\}\),且任意 \(i\) 个元素的交集都相等

定义 \(g(x)\) 为 \(x\) 个集合的交集,\(f(x)\) 为 \(x\) 个集合补集的交集(定义 \(f(0)=g(0)=U\)),则:

\[\mid\bigcap^{n}_{i}S_{i}\mid=\mid U\mid+\sum_{i}\{(-1)^{i}\times\mid f(i)\mid\}
\]

可知对 \(g(i)\),符合要求的 \(f(i)\) 组合共有 \(C^{i}_{n}\) 种,即原式可以化为:

\[\mid\bigcap^{n}_{i}S_{i}\mid=\sum^{n}_{i}(-1)^{i}C^{i}_{n}\mid f(i)\mid
\]

同理有

\[\mid\bigcap^{n}_{i}\complement_{U}S_{i}\mid=\sum^{n}_{i}(-1)^{i}C^{i}_{n}\mid g(i)\mid
\]

因为

\[\mid f(n)\mid=\mid\bigcap^{n}_{i}\complement_{U}S_{i}\mid,\mid g(n)\mid=\mid\bigcap^{n}_{i}S_{i}\mid
\]

因此得出结论:

\[g(n)=\sum^{n}_{i=0}(-1)^{i}C^{i}_{n}f(i)\iff f(n)=\sum^{n}_{i=0}(-1)^{i}C^{i}_{n}g(i)
\]
\[P.10.1(2)
\]

因为

\[C^{i}_{n}\times C^{j}_{i}=\dfrac{n!}{(n-i)!i!}\times \dfrac{i!}{(i-j)!j!}=\dfrac{n!}{(n-j)!j!}\times\dfrac{(n-j)!}{[(n-j)-(n-i)]!(i-j)!}=C^{j}_{n}\times C^{n-1}_{n-j}
\]

因此

\[\sum^{n}_{i=j}\{(-1)^{i}\times C^{i}_{n}\times(-1)^{j}\times C^{j}_{i}\}=C^{j}_{n}(-1)^{j}\sum^{n-j}_{i=0}C^{i}_{n-j}=C^{j}_{n}\times (1-1)^{n-j}=C^{j}_{n}\times 0^{n-j}
\]

当 \(j\neq n\) 时,原式值为 \(0\),否则值为 \(1\).

当 \(g(n)=\sum\limits^{n}_{i=0}(-1)^{i}C^{i}_{n}f(i)\iff f(n)=\sum\limits^{n}_{i=0}(-1)^{i}C^{i}_{n}g(i)\) 成立时,可以推知

\[f(n)=\sum^{n}_{i=0}(-1)^{i}C^{i}_{n}=\sum^{n}_{i=0}(-1)^{i}C^{i}_{n}\sum^{n}_{i=j}(-1)^{j}C^{j}_{i}f(j)=\sum^{n}_{j=0}f(j)\sum^{n}_{i=j}\{(-1)^{i}\times C^{i}_{n}\times(-1)^{j}\times C^{j}_{i}\}
\]

该式末项 \(\sum\limits^{n}_{i=j}\{(-1)^{i}\times C^{i}_{n}\times(-1)^{j}\times C^{j}_{i}\}\) 已有上述结论,故当 \(j\neq n\) 和 \(j=n\) 时分别带入讨论,发现原式均成立,证毕.

事实上,二项式反演还有一个更常用的推导式:

\[g(n)=\sum\limits_{i=0}^nC^{i}_{n}f(i)\iff f(n)=\sum\limits_{i=0}^n(-1)^{n-i}C^{i}_{n}g(i)
\]

根据二项式反演的性质,我们通常会构造一组 \(\{ f(i),g(i)\}\),使得两者之间存在包含关系并且有一者很方便求出,通过反演来快速得到另一者的值.

二项式反演还有其他形式:

\[g(n)=\sum\limits_{i=n}^N(-1)^iC^{i}_{n}f(i)\iff f(n)=\sum\limits_{i=n}^N(-1)^{i}C^{i}_{n}g(i)
\]
\[g(n)=\sum\limits_{i=n}^NC^{i}_{n}f(i)\iff f(n)=\sum\limits_{i=n}^N(-1)^{i-n}C^{i}_{n}g(i)
\]

10.2 Min-Max 容斥

对于满足全序关系并且其中元素满足可加减性的序列 \(\{x_i\}\),设其长度为 \(n\),并设 \(S=\{1,2,3,\cdots,n\}\) ,则有:

\[\max_{i\in S}{x_i}=\sum_{T\subseteq S}{(-1)^{|T|-1}\min_{j\in T}{x_j}}
\]
\[\min_{i\in S}{x_i}=\sum_{T\subseteq S}{(-1)^{|T|-1}\max_{j\in T}{x_j}}
\]

一个常用的实际应用为 Min-Max 容斥的低维版本:\(\min(a,b)=a+b-\max(a,b)\)

证明略.

10.3 错位排列

满足 \(\forall i\neq a_{i}\) 的排列被称为错位排列.

10.3.1 公式

套用补集的公式,问题变成求

\[\left|\bigcup_{i=1}^n\overline{S_i}\right|
\]

可以知道,\(\overline{S_i}\) 的含义是满足 \(P_i=i\) 的排列的数量。用容斥原理把问题式子展开,需要对若干个特定的集合的交集求大小,即:

\[\left|\bigcap_{i=1}^{k}S_{a_i}\right|
\]

其中省略了 \(a_i<a_{i+1}\) 的条件以方便表示

上述 \(k\) 个集合的交集表示有 \(k\) 个变量满足 \(P_{a_i}=a_i\) 的排列数,而剩下 \(n-k\) 个数的位置任意,因此排列数:

\[\left|\bigcap_{i=1}^{k}S_{a_i}\right|=(n-k)!
\]

那么选择 $k4 个元素的方案数为

\(C^{k}_{n}\),因此有:

\[\begin{aligned}
\left|\bigcup_{i=1}^n\overline{S_i}\right|
&=\sum_{k=1}^n(-1)^{k-1}\sum_{a_{1,\cdots,k} }\left|\bigcap_{i=1}^{k}S_{a_i}\right|\\
&=\sum_{k=1}^n(-1)^{k-1}C^{k}_{n}(n-k)!\\
&=\sum_{k=1}^n(-1)^{k-1}\frac{n!}{k!}\\
&=n!\sum_{k=1}^n\frac{(-1)^{k-1} }{k!}
\end{aligned}\]

因此 \(n\) 的错位排列数为:

\[D_n=n!-n!\sum_{k=1}^n\frac{(-1)^{k-1} }{k!}=n!\sum_{k=0}^n\frac{(-1)^k}{k!}
\]

10.3.2 递推式

\[D_{n}=(n-1)(D_{n-1}+D_{n-2})
\]
\[D_{n}=nD_{n-1}+(-1)^{n})
\]

待证明

10.4 Catalan 数

1 1 2 5 14 42 132
\[H_n = \frac{\binom{2n}{n}}{n+1}
\]

关于 Catalan 数的常见公式:

\[H_n = \begin{cases}
\sum_{i=1}^{n} H_{i-1} H_{n-i} & n \geq 2, n \in \mathbf{N_{+}}\\
1 & n = 0, 1
\end{cases}\]
\[H_n = \frac{H_{n-1} (4n-2)}{n+1}
\]
\[H_n = C^{n}_{2n} - C^{n-1}_{2n}
\]

[OI] 容斥原理拓展的更多相关文章

  1. [luogu4478 BJWC2018] 上学路线 (容斥原理+拓展lucas)

    传送门 Description 小B 所在的城市的道路构成了一个方形网格,它的西南角为(0,0),东北角为(N,M). 小B 家住在西南角,学校在东北角.现在有T 个路口进行施工,小B 不能通过这些路 ...

  2. 告别我的OI生涯

    本文章写于2008年12月15日. 随着2008noip的结束,我也结束了我的OI生涯. 信息竞赛也许是从小到大让我最最努力的一件事.我记得参加2006noip初赛前,每天中午为了上信息课都吃不上中午 ...

  3. 收集一些关于OI/ACM的奇怪的东西……

    一.代码: 1.求逆元(原理貌似就是拓展欧几里得,要求MOD是素数): int inv(int a) { if(a == 1) return 1; return ((MOD - MOD / a) * ...

  4. OI分类

    黑字:认识 红字:要学 未添加:要学 ├─模拟├─字符串│    ├─字符串基础│    ├─manacher│    ├─kmp│    ├─trie│    ├─ac自动机│    ├─后缀数组( ...

  5. [技术]浅谈OI中矩阵快速幂的用法

    前言 矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中,矩阵的运算是数值分析领域的重要问题. 基本介绍 (该部分为入门向,非入门选手可以跳过) 由 m行n列元素排列成的矩形阵列.矩阵里的 ...

  6. OI暑假集训游记

    莞中OI集训游记 Written BY Jum Leon. I        又是一载夏,本蒟蒻以特长生考入莞中,怀着忐忑的心情到了8月,是集训之际.怀着对算法学习的向往心情被大佬暴虐的一丝恐惧来到了 ...

  7. 2017.12.10《“剑锋OI”普及组多校联盟系列赛(14)#Sooke#Kornal 的课余时间 》分析报告

    报告内容如下 - - [导语] ------ 太晚了,时间也紧,一切尽量从简吧 PS:本文题目来自剑锋OI 所以废话也不多说,进入正题吧,代码直接跟在题目后边儿,主要分析在代码前,次要的就写在代码后面 ...

  8. OI中的莫比乌斯反演

    OI中的莫比乌斯反演 莫比乌斯函数 想要学习莫比乌斯反演,首先要学习莫比乌斯函数. 定义 莫比乌斯函数用\(\mu(x)\)表示.如果\(x\)是\(k\)个不同质数的积,则\(\mu(x) = (- ...

  9. OI数学 简单学习笔记

    基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\ ...

  10. OI中组合数的若干求法与CRT

    OI中组合数的若干求法与CRT 只是下决心整理一下子呢~ 说明:本篇文章采用\(\binom{a}{b}\)而不是\(C_{a}^b\),以\(p\)指代模数,\(fac_i\)指代\(i!\),\( ...

随机推荐

  1. [rCore学习笔记 09]为内核支持函数调用

    在[[08 内核第一条指令|上一节]]我们使用了编写entry.asm函数中编写了内核的第一条指令,但是我们使用的汇编.这里注意我们仍然是嵌入了这段asm代码到我们的rust代码之中,然后进行编译.但 ...

  2. OpenGL 4.0中数据缓冲VBO,VAO,EBO的使用总结

    Opengl是大家常用的一个API,我们用它绘制数据的时候需要使用vao,vbo,ebo等对象,绘制方式分为 vao绘制,ebo绘制等.使用不同api还能分为普通调用以及Instance绘制. 首先申 ...

  3. php环境,性能优化

    根据宝塔的推荐进行参数修改 我的是8G内存,修改成4G内存 下面是备份:修改前的 ; Start a new pool named 'www'.; the variable $pool can be ...

  4. web3 产品介绍:硬件钱包Ledger 离线管理私钥更安全

    Ledger是一款硬件钱包,可以安全地存储用户的加密资产,并在需要时进行交易.作为一种离线存储设备,Ledger钱包比在线钱包更加安全,因为它能够保护用户的私钥和交易信息,使其免受黑客攻击和网络病毒的 ...

  5. 【Docker】08 部署挂载本地目录的MySQL

    拉取MySQL镜像: docker pull mysql:8.0.21 执行挂载运行MySQL容器的命令: docker run -dit \ --name mysql-test \ -p 3306: ...

  6. 《Python数据可视化之matplotlib实践》 源码 第一篇 入门 第一章

    最近手上有需要用matplotlib画图的活,在网上淘了本实践书,发现没有代码,于是手敲了一遍,mark下. 第一篇    第一章 图1.1 import matplotlib.pyplot as p ...

  7. 树莓派3b+ 安装windows10 arm版本的方法及使用体验

    首先,我再网上找到了一个很详细的为树莓派3b安装windows10 arm的教程,实际操作下来发现并不可行. 最后找到了可行的教程: 第3章 将Windows10镜像写入TF卡:https://zhu ...

  8. udp协议实现组播功能

    /*************************************************************************************************** ...

  9. ComfyUI插件:ComfyUI_Noise节点

    前言: 学习ComfyUI是一场持久战,ComfyUI_Noise是对ComfyUI中的噪声进行控制的一个插件库,该库可以完成图像噪声的反推,并通过采样再以几乎无损的方式返回原图,通过该库的使用可以更 ...

  10. 知攻善防Web1应急靶机笔记--详解

    知攻善防Web1应急靶机笔记 概述 这是一台知攻善防实验室的应急响应靶机,方便大家练习一下应急响应的流程和操作. 靶机的前景概述: 前景需要: 小李在值守的过程中,发现有CPU占用飙升,出于胆子小,就 ...