给定集合 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)
我们定义一个集合 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, 这个可以手玩一下
这道题巧妙的运用了组合数的递推式, 还是很妙的.