min-max 容斥.
记 $\max(S)$ 表示集合 $S$ 中的位置全部变成 $1$ 的期望次数,即每一位变成 $1$ 的期望次数的最大值.
$\min(S)$ 表示集合 $S$ 中至少有一个位置变成 $1$ 的期望次数,即每一位变成 $1$ 的期望次数的最小值.
记 $U$ 为全集.
则根据 min-max 容斥,有
$$
ans=\max(U)=\sum_{S\neq \emptyset} (-1)^{|S|-1}\cdot \min(S)
$$
考虑 $S$ 中每个元素对 $\min(S)$ 的贡献,有
$$
\min(S)=\frac{1}{\sum_{T\cap S= \emptyset}p(T)}
$$
其中 $p(T)$ 表示每次选中 $T$ 中某个元素的概率.
而
$$
\sum_{T\cap S= \emptyset}p(T)=1-\sum_{T\subseteq(U-S)} p(T)
$$
暴力预处理每个集合的所有子集贡献之和是 $O(3^n)$ 的.
利用 $\rm FWT$ 处理,时间复杂度优化到 $O(n\cdot 2^n)$ .
注意判断无解的情况.
1 | //%std |