[HAOI2015]按位或(容斥+前缀和)】的更多相关文章

题目描述 刚开始你有一个数字0,每一秒钟你会随机选择一个[0,2^n-1]的数字,与你手上的数字进行或(c++,c的|,pascal 的or)操作.选择数字i的概率是p[i].保证0<=p[i]<=1,Σp[i]=1问期望多少秒后,你手上的数字变成2^n-1. 题解 MIN-MAX容斥 大概就是这么两个东西,做题思路大概就是正难则反吧,max不好求但min好求,就可以直接用这种方法上了. 现在我们算maxV(S),然鹅它不好算,所以我们就转换求所有minV(S). 考虑一个事件发生的概率为p,…
[luogu 3175] [HAOI2015]按位或 题面 刚开始你有一个数字0,每一秒钟你会随机选择一个[0,2^n-1]的数字,与你手上的数字进行按位或运算.问期望多少秒后,你手上的数字变成2^n-1. 分析 前置知识:min-max容斥 记\(\max(S)\)为集合\(S\)中的最大值,\(\min(S)\)为集合\(S\)中的最小值(如果\(S=\emptyset\) ,那\(\max(S)=\min(S)=0\)),那么有 \[\max(S)=\sum _{T\subseteq S}…
传送门 套路题 看到\(n \leq 20\),又看到我们求的是最后出现的位置出现的时间的期望,也就是集合中最大值的期望,考虑min-max容斥. 由\(E(max(S)) = \sum\limits_{T \subset S} (-1)^{|T| + 1} E(min(T))\),我们要求的就是一个集合至少有一个数字出现的期望时间.那么\(E(min(T)) = \frac{1}{\sum\limits_{S' \cap T \neq \emptyset} p_{S'}}\). \(\sum\…
考虑min-max容斥 \(E[max(S)] = \sum \limits_{T \subset S} min(T)\) \(min(T)\)是可以被表示出来 即所有与\(T\)有交集的数的概率的和的倒数 通过转化一下,可以考虑求所有与\(T\)没有交集的数的概率和 即求\(T\)的补集的子集的概率和 用FMT随意做下吧... 注意:概率为1的时候需要特判 复杂度\(O(2^n * n)\) #include <cstdio> #include <vector> #include…
题目链接:洛谷 题目大意:给定正整数 $n$.一开始有一个数字 $0$,然后每一秒,都有 $p_i$ 的概率获得 $i$ 这个数 $(0\le i< 2^n)$.一秒恰好会获得一个数.每获得一个数,就要将我们有的数与获得的数进行按位或.问期望经过多少秒后,我们的数变成 $2^n-1$. $1\le n\le 20,\sum p_i=1$. %%%stO shadowice1984 Orz%%% 首先定义 $\min(S)$ 表示 $S$ 中第一个变为 $1$ 的元素的时间.(其中 $S$ 是一个…
Description 刚开始你有一个数字0,每一秒钟你会随机选择一个[0,2^n-1]的数字,与你手上的数字进行或(c++,c的|,pascal 的or)操作.选择数字i的概率是p[i].保证0<=p[i]<=1,Σp[i]=1问期望多少秒后,你手上的数字变成2^n-1. Input 第一行输入n表示n个元素,第二行输入2^n个数,第i个数表示选到i-1的概率 Output 仅输出一个数表示答案,绝对误差或相对误差不超过1e-6即可算通过.如果无解则要输出INF Sample Input 2…
题目链接 BZOJ4036 题解 好套路的题啊,,, 我们要求的,实际上是一个集合\(n\)个\(1\)中最晚出现的\(1\)的期望时间 显然\(minmax\)容斥 \[E(max\{S\}) = \sum\limits_{T \subseteq S} (-1)^{|T| + 1}E(min\{T\})\] 那么问题就转化为了求每个集合中最早出现的\(1\)的期望时间 假如在\(k\)时刻出现,那么前\(k - 1\)时刻一定都是取的补集的子集,记\(T\)补集的所有子集概率和为\(P\) \…
其实也不是FWT--我也不知道刷FWT专题问什么会刷出来这个东西 这是min-max容斥讲解:https://www.zybuluo.com/ysner/note/1248287 总之就是设min(s),max(s)分别表示集合s里最早和最晚出现的元素,显然E(amx(全集))就是答案 然后有这样的式子: \[ E(max(s))=\sum_{s'\in s}E(min(s'))*(-1)^{|s'|+1} \] \[ E(min(s))=\frac{1}{\sum_{s'\cap s!=\ph…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4036 题解 变成 \(2^n-1\) 的意思显然就是每一个数位都出现了. 那么通过 MinMax 容斥,可以把问题转化为对于一个集合 \(S\),求 \(S\) 中至少有一个元素出现的概率. 这个问题等价于求 \(S\) 中没有任何一个元素出现的概率,即出现的数都是 \(S\) 的补集的子集的概率. 这个问可以通过 SoSDP 实现,时间复杂度 \(O(n2^n)\). 关于 SoSDP 这…
题解: 之前听说过这个东西但没有学 令$max(S)$表示S中编号最大的元素,$min(S)$表示编号中最小的元素 $$max(S)=\sum{T \in S} {(-1)}^{|T|+1} min(T) $$ $$min(S)=\sum{T \in S} {(-1)}^{|T|+1} max(T) $$ 然后再在外面套个期望 $$E(max(S))=\sum{T \in S} {(-1)}^{|T|+1} E(min(T))$$ hdu 4336 定义大小比较为出现时间早晚 $E(max(S)…