转眼间就已经在这里旅游了三天了,离死亡的感觉越来越真实,所谓活下去或许只是虚妄渺茫的幻想吧。
跳过伤感,我们看看今天有什么好看的。
容斥原理
这个东西它比较普及,大家大概都是知道名字的,当然包括我,大家大概也都是会了的,当然除了我,我除了名字啥都不知道。
是个啥:这是一个原理(屁话)用于处理问题时对有重复或是多余部分进行处理以求出答案。
其思想可由韦恩图较好的展现,下面给出一个简单的韦恩图
下面请允许我复制粘贴其基本操作流程列出题⽬中的n个条件。
- 求满⾜这n个条件中每⼀个的⽅案的个数。
- 枚举这些条件的所有2^n个集合。
- 考虑⼀个集合x,令不满⾜x中所有条件的⽅案有A个。
- 如果x的⼤⼩是奇数,给答案减去A,不然给答案加上A。
下面我们利用这个搞搞欧拉函数的证明。
欧拉函数
ϕ
(
n
)
\phi(n)
ϕ(n)是指1-n中与n互质的数的个数。
对于每个n可以拆成以下格式:
p
1
e
1
×
p
2
e
2
×
.
.
.
×
p
k
e
k
p_1^{e_1}\times p_2^{e_2}\times ...\times p_k^{e_k}
p1e1×p2e2×...×pkek
我们设
s
i
s_i
si为在n内
p
i
p_i
pi的倍数构成的集合。
我们需要的答案是
n
−
∣
⋃
i
=
1
k
s
i
∣
n-\left|\bigcup_{i=1}^ks_i \right|
n−∣∣∣∣∣i=1⋃ksi∣∣∣∣∣
我们不难推出
n
−
∣
⋃
i
=
1
k
s
i
∣
=
n
−
∑
T
⊆
n
(
−
1
)
∣
T
∣
−
1
∣
⋂
i
∈
T
s
i
∣
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
∣
−
1
n
∏
i
∈
T
p
i
\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
∣
−
1
1
∏
i
∈
T
p
i
)
\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
=
1
k
(
1
−
p
i
)
\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
∣
+
1
min
(
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
∣
+
1
E
(
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.