转眼间就已经在这里旅游了三天了,离死亡的感觉越来越真实,所谓活下去或许只是虚妄渺茫的幻想吧。
跳过伤感,我们看看今天有什么好看的。
容斥原理
这个东西它比较普及,大家大概都是知道名字的,当然包括我,大家大概也都是会了的,当然除了我,我除了名字啥都不知道。
是个啥:这是一个原理(屁话)用于处理问题时对有重复或是多余部分进行处理以求出答案。
其思想可由韦恩图较好的展现,下面给出一个简单的韦恩图
下面请允许我复制粘贴其基本操作流程列出题⽬中的n个条件。
- 求满⾜这n个条件中每⼀个的⽅案的个数。
- 枚举这些条件的所有2^n个集合。
- 考虑⼀个集合x,令不满⾜x中所有条件的⽅案有A个。
- 如果x的⼤⼩是奇数,给答案减去A,不然给答案加上A。
下面我们利用这个搞搞欧拉函数的证明。
欧拉函数ϕ(n)\phi(n)ϕ(n)是指1-n中与n互质的数的个数。
对于每个n可以拆成以下格式:p1e1×p2e2×...×pkekp_1^{e_1}\times p_2^{e_2}\times ...\times p_k^{e_k}p1e1×p2e2×...×pkek
我们设sis_isi为在n内pip_ipi的倍数构成的集合。
我们需要的答案是n−∣⋃i=1ksi∣n-\left|\bigcup_{i=1}^ks_i \right|n−∣∣∣∣∣i=1⋃ksi∣∣∣∣∣
我们不难推出
n−∣⋃i=1ksi∣=n−∑T⊆n(−1)∣T∣−1∣⋂i∈Tsi∣n-\left|\bigcup_{i=1}^ks_i \right|=n-\sum_{T_\subseteq n}(-1)^{|T|-1}\left|\bigcap_{i\in T}s_i\right|n−∣∣∣∣∣i=1⋃ksi∣∣∣∣∣=n−T⊆n∑(−1)∣T∣−1∣∣∣∣∣i∈T⋂si∣∣∣∣∣
所以我们不难推出,原式可化简为:
ϕ(n)=n−∑T⊆n(−1)∣T∣−1n∏i∈Tpi\phi(n)=n-\sum_{T\subseteq n}(-1)^{|T|-1}\frac{n}{\prod_{i\in T}p_i}ϕ(n)=n−T⊆n∑(−1)∣T∣−1∏i∈Tpin
提取公因数:
ϕ(n)=n×(1−∑T⊆n(−1)∣T∣−11∏i∈Tpi)\phi(n)=n\times(1-\sum_{T\subseteq n}(-1)^{|T|-1}\frac{1}{\prod_{i\in T}p_i})ϕ(n)=n×(1−T⊆n∑(−1)∣T∣−1∏i∈Tpi1)
然后就分配一下,就得到了我们常见的欧拉函数:
ϕ(n)=n∑i=1k(1−pi)\phi(n)=n\sum_{i=1}^k(1-p_i)ϕ(n)=ni=1∑k(1−pi)
所以我们大概就完成了欧拉函数的证明。
于是我就不会剩下关于容斥原理的内容了。
补集思想
这是关于容斥原理重要思想,是正难则反的体现。
一般可以概括为:满⾜条件的=全部的-不满⾜条件的。
容斥原理可以看成补集思想的一部分。
利用此思想对问题进行转化,可以使问题简单化,让生活更快乐。
Min-Max容斥
这是容斥原理的一个冷门知识点,就是通过对一个集合中的min和max进行转化以求出其值,设定集合为S,一般可以参照以下式子:
max(S)=∑T⊆S(−1)∣T∣+1min(T)\max(S)=\sum_{T \subseteq S}(-1)^{|T|+1}\min(T)max(S)=T⊆S∑(−1)∣T∣+1min(T)
当然你也可以互换Min和Max的位置,这样我们就完成了Min和Max的转化。
它有什么用呢?
这当然是与题目有关,假设我们能很轻松地求出任意集合的Min(S) 但是我们不会(或者很难)求出任意集合的 Max(S) 。
而Min-Max容斥最常用的方式还是在计算期望的时候。
上述转换Min-Max的式子在期望下也成立,即满足期望线性性。换成式子就是:
E(max(S))=∑T⊆S(−1)∣T∣+1E(min(T))E(\max(S))=\sum_{T \subseteq S}(-1)^{|T|+1}E(\min(T))E(max(S))=T⊆S∑(−1)∣T∣+1E(min(T))
然后我们就可以计算了。
是时候草草的结尾了。
END.