首页 > 其他分享 >[OI] 容斥原理拓展

[OI] 容斥原理拓展

时间:2024-07-24 11:50:48浏览次数:7  
标签:frac limits OI sum 容斥 mid 拓展 times bigcap

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} \]

标签:frac,limits,OI,sum,容斥,mid,拓展,times,bigcap
From: https://www.cnblogs.com/HaneDaCafe/p/18317830

相关文章

  • Android超复杂布局加载速度优化
    一、概述有时候由于实际业务的需要,或者产品经理或设计师考虑的不够全面,会导致某一个或某些页面的布局超级复杂。这些超级复杂的UI在经过程序员通过传统布局优化过后仍然是复杂的(优化布局层级、优化层级布局数量等)。这就会导致布局加载速度过于缓慢。直接的结果就是打开A......
  • Android13 控制设置界面 双栏显示或单栏显示
    Android13设置界面会判断当前屏幕的大小,如果是大屏,则为双栏显示!./packages/apps/Settings/src/com/android/settings/homepage/SettingsHomepageActivity.java@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(save......
  • Android 13 大屏显示时关于SystemUI和Launcher3问题
    当系统运行在大屏上时,原来显示SystemUI导航栏的位置会变成Launcher3的任务栏,然后导航栏的3个按键显示靠右下角显示1.先看SystemUI的导航栏为什么会消失,移动/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.javapublicvoidcreateNavigationBar......
  • Toga 应用程序图标在 Android 上不显示:如何修复?
    我正在使用Toga开发Android应用程序,并为该应用程序设置了图标,但它无法正确显示。这是我所做的:放置图标文件:我的项目的资源目录中有一个PNG图标文件(F.png)。更新了main函数:我在main函数中指定了图标路径为icon='resources/F.png'。构建应用程序:我运行了Briefc......
  • NOI2024 游记 | 如果这只是梦
    NOI2024游记|如果这只是梦省流:HBA类打铜,内含很多个人想法,可能更像对这一赛季想说的鲜花我终于站在了国赛场上,这也是第一次站在赛场上。第一天考试的时候我无法抑制紧张的心情,看到T2居然是真的交互题当时顿时心凉了半截,我开场前1h心跳一直很快,后面都有些喘不过气来,花了......
  • P3957[NOIP2017普及组]跳房子
    https://www.luogu.com.cn/problem/P3957https://class.51nod.com/Html/Textbook/ChapterIndex.html#textbookId=126&chapterId=337显然,但是维护滑动窗口有技巧,不能每次插入一个值,因为维护\(x\)不方便。所以考虑一个\(cur\),每次对于新的\(i\)不能跳过时移动\(cur\),然后队......
  • 洛谷P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题
    [NOIP2001普及组]最大公约数和最小公倍数问题题目描述洛谷题目链接:https://www.luogu.com.cn/problem/P1029输入两个正整数x,y,求出满足下列条件的P,Q的个数:P,Q是正整数。要求P,Q以x为最大公约数,以y为最小公倍数。试求:满足条件的所有可能的P,Q的个数。......
  • P2294 [HNOI2005] 狡猾的商人
    原题链接题解先看成前缀和,这样就是维护\(pre[r],pre[l-1]\)两点之间的权值如果是false,代表存在矛盾,且矛盾出现在回路我们可以把这个回路之前的元素看成一个集合,如果新加入的边使得原先两点间的权值不等便失效而对于一个集合里的元素,由于相加具有矢量特性,所以我们维护集合内......
  • qaq(曾经の NOIP 模考)
    TomoyukiMIzuyama要出\(n\)道题,他现在有\(m\)个不同的乱码,他非常的阴间,所以他决定先决定先用这群乱码起好第一个题目的名字,之后每个题目都直接从上一个题目名字中找一个子序列当做自己的名字。现在他想知道,在第\(i\)道题目名字长度为\(a_i\)的情况下(\(a_1\gea_2\ge\cd......
  • xfs-2024-NOIP模拟赛
    0722模拟赛这是计数专场吗,把我秒掉了。难原:P7050[NWRRC2015]Concatenation给定两个字符串a,b,从a中选一段前缀,b中选一段后缀(前后缀都可以为空),并将选出的后缀拼在选出的前缀后面。你需要求出有多少种本质不同的串(可以为空)。思路总方案数减去不合法的方案数。以ab......