Min-max容斥
给定集合
S
S
S, 其中最大的值是
max
(
S
)
\max(S)
max(S), 最小的值是
min
(
S
)
\min(S)
min(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)
考虑构造容斥系数
f
(
i
)
f(i)
f(i), 使得下式成立
max
(
S
)
=
∑
T
⊆
S
f
(
∣
T
∣
)
min
(
T
)
\max(S) = \sum _ {T \subseteq S} f(|T|)\min(T)
max(S)=T⊆S∑f(∣T∣)min(T)
我们单独考虑每一个元素, 设当前元素是第
x
x
x大, 则有
∑
i
=
0
x
−
1
(
x
−
1
i
)
f
(
i
+
1
)
=
[
x
=
1
]
\sum _ {i = 0} ^ {x - 1}\binom{x - 1}{i}f(i + 1) = [x = 1]
i=0∑x−1(ix−1)f(i+1)=[x=1]
由二项式定理可知
f
(
i
+
1
)
=
(
−
1
)
i
→
f
(
i
)
=
(
−
1
)
i
−
1
f(i + 1) = (-1)^i \to f(i) = (-1)^{i - 1}
f(i+1)=(−1)i→f(i)=(−1)i−1
按位或
设 $ \max(S) $ 表示
S
S
S 中最后一个元素被与出的期望时间, $ \min(S) $ 表示
S
S
S 中第一个元素被与出的期望时间, 答案为
∑
T
(
−
1
)
∣
T
∣
−
1
min
(
T
)
\sum _ {T} (-1) ^ {|T| - 1}\min(T)
T∑(−1)∣T∣−1min(T)
设
p
(
S
)
p(S)
p(S) 为取到
S
S
S 中任意一个元素的概率, 则有
min
(
S
)
=
∑
i
=
1
+
∞
i
⋅
p
(
S
)
×
(
1
−
p
(
S
)
)
i
−
1
→
1
p
(
S
)
\min(S) = \sum _ {i = 1} ^ {+\infty} i \cdot p(S) \times (1 - p(S)) ^ {i - 1} \to \frac{1}{p(S)}
min(S)=i=1∑+∞i⋅p(S)×(1−p(S))i−1→p(S)1
p ( S ) = ∑ T ∩ S ≠ ∅ a S p(S) = \sum _ {T \cap S \ne \varnothing}a_S p(S)=T∩S̸=∅∑aS
这个东西不太好求, 我们考虑去求
1
−
p
(
S
)
1 - p(S)
1−p(S)
1
−
p
(
S
)
=
∑
T
⊆
∁
U
S
a
T
1 - p(S) = \sum _ {T \subseteq \complement_U^S} a_T
1−p(S)=T⊆∁US∑aT
这个就相当于求
S
S
S 的补集的子集和,
FMT
\textbf{FMT}
FMT 一下就好了.
随机游走
设
f
[
S
]
[
i
]
f[S][i]
f[S][i] 表示从
i
i
i 出发第一次到达点集
S
S
S 的期望步数, 枚举一个集合, 然后有转移
f
[
S
]
[
i
]
=
∑
v
∈
s
o
n
i
f
[
S
]
[
v
]
d
e
g
i
+
f
[
S
]
[
f
a
i
]
d
e
g
i
+
1
f[S][i] = \sum _ {v \in son_i} \frac{f[S][v]}{deg_i} + \frac{f[S][fa_i]}{deg_i} + 1
f[S][i]=v∈soni∑degif[S][v]+degif[S][fai]+1
这个东西可以用树上高消的小
t
r
i
c
k
trick
trick 优化一下, 复杂度
O
(
n
)
O(n)
O(n), 总复杂度
,
O
(
2
n
n
)
,O(2^nn)
,O(2nn), 则有
max
(
S
)
=
∑
T
⊆
S
(
−
1
)
∣
T
∣
f
[
T
]
[
x
]
\max(S) = \sum _ {T \subseteq S} (-1)^{|T|}f[T][x]
max(S)=T⊆S∑(−1)∣T∣f[T][x]
这个东西可以直接用
FMT
\textbf{FMT}
FMT 预处理一下, 总复杂度为
O
(
2
n
n
)
O(2^n n)
O(2nn)
Kth-Min-max容斥
我们定义一个集合
S
S
S 中的第
k
k
k 大为
Kth-Max
(
S
)
\textbf{Kth-Max}(S)
Kth-Max(S), 集合
S
S
S 中的最小值为 $ \min(S) $, 则有
Kth-Max
(
S
)
=
∑
T
⊆
S
(
−
1
)
∣
T
∣
−
k
(
∣
T
∣
−
1
k
−
1
)
min
(
T
)
\textbf{Kth-Max}(S) = \sum _ {T \subseteq S} (-1) ^ {|T| - k} \binom{|T| - 1}{k - 1}\min(T)
Kth-Max(S)=T⊆S∑(−1)∣T∣−k(k−1∣T∣−1)min(T)
重返现世
设
f
[
i
]
[
j
]
[
k
]
f[i][j][k]
f[i][j][k] 表示考虑了前
i
i
i 个, 满足
∑
i
∈
T
p
i
=
j
\sum _ {i \in T} p_i = j
∑i∈Tpi=j 且参量为
k
k
k 的集合
T
T
T 的下式的和 :
∑
T
(
−
1
)
∣
T
∣
−
k
(
∣
T
∣
−
1
k
−
1
)
\sum _ {T} (-1) ^ {|T| - k} \binom{|T| - 1}{k - 1}
T∑(−1)∣T∣−k(k−1∣T∣−1)
考虑第
i
i
i 个数是否加入集合, 如果不加入直接从
f
[
i
−
1
]
[
j
]
[
k
]
f[i - 1][j][k]
f[i−1][j][k] 转移, 否则 :
设
S
(
T
)
=
∑
i
∈
T
p
i
S(T) = \sum _ {i \in T} p_i
S(T)=∑i∈Tpi
f
[
i
]
[
j
]
[
k
]
=
∑
S
(
T
)
=
j
(
−
1
)
∣
T
∣
−
k
(
∣
T
∣
−
1
k
−
1
)
=
∑
S
(
T
)
=
j
−
p
i
(
−
1
)
∣
T
∣
−
k
+
1
(
∣
T
∣
k
−
1
)
=
∑
S
(
T
)
=
j
−
p
i
(
−
1
)
∣
T
∣
−
k
+
1
(
(
∣
T
∣
−
1
k
−
2
)
+
(
∣
T
∣
−
1
k
−
1
)
)
=
∑
S
(
T
)
=
j
−
p
i
(
−
1
)
∣
T
∣
−
(
k
−
1
)
(
∣
T
∣
−
1
(
k
−
1
)
−
1
)
+
(
−
1
)
∣
T
∣
−
k
+
1
(
∣
T
∣
−
1
k
−
1
)
=
∑
S
(
T
)
=
j
−
p
i
(
−
1
)
∣
T
∣
−
(
k
−
1
)
(
∣
T
∣
−
1
(
k
−
1
)
−
1
)
−
(
−
1
)
∣
T
∣
−
k
(
∣
T
∣
−
1
k
−
1
)
=
f
[
i
−
1
]
[
j
−
p
i
]
[
k
−
1
]
−
f
[
i
−
1
]
[
j
−
p
i
]
[
k
]
\begin{aligned} f[i][j][k] &= \sum _ {S(T) = j} (-1) ^ {|T| - k} \binom{|T| - 1}{k - 1}\\ &=\sum _ {S(T) = j - p_i} (-1) ^ {|T| - k + 1} \binom{|T|}{k - 1}\\ &=\sum _ {S(T) = j - p_i} (-1) ^ {|T| - k + 1} \left(\binom{|T| - 1}{k - 2} + \binom{|T| - 1}{k - 1}\right)\\ &=\sum _ {S(T) = j - p_i} (-1) ^ {|T| - (k - 1)}\binom{|T| - 1}{(k - 1) - 1} + (-1) ^ {|T| - k + 1}\binom{|T| - 1}{k - 1}\\ &=\sum _ {S(T) = j - p_i} (-1) ^ {|T| - (k - 1)}\binom{|T| - 1}{(k - 1) - 1} - (-1) ^ {|T| - k}\binom{|T| - 1}{k - 1}\\ &=f[i - 1][j - p_i][k - 1] - f[i - 1][j - p_i][k ] \end{aligned}
f[i][j][k]=S(T)=j∑(−1)∣T∣−k(k−1∣T∣−1)=S(T)=j−pi∑(−1)∣T∣−k+1(k−1∣T∣)=S(T)=j−pi∑(−1)∣T∣−k+1((k−2∣T∣−1)+(k−1∣T∣−1))=S(T)=j−pi∑(−1)∣T∣−(k−1)((k−1)−1∣T∣−1)+(−1)∣T∣−k+1(k−1∣T∣−1)=S(T)=j−pi∑(−1)∣T∣−(k−1)((k−1)−1∣T∣−1)−(−1)∣T∣−k(k−1∣T∣−1)=f[i−1][j−pi][k−1]−f[i−1][j−pi][k]
边界条件非常的神奇,
f
[
0
]
[
0
]
[
0
]
=
0
,
∀
k
>
1
,
f
[
0
]
[
0
]
[
k
]
=
−
1
f[0][0][0] = 0, \forall k > 1, f[0][0][k] = -1
f[0][0][0]=0,∀k>1,f[0][0][k]=−1, 这个可以手玩一下
这道题巧妙的运用了组合数的递推式, 还是很妙的.