#P635. 【HAOI2015】按位或
【HAOI2015】按位或
【题目描述】
刚开始你有一个数字 0,每一秒钟你会随机选择一个 [0,2n−1] 的数字,与你手上的数字进行按位或(C 和 C++ 的 |,Pascal 的 or)操作。
选择数字 i 的概率是 p[i]。保证 0≤p[i]≤1,∑p[i]=1。
问期望多少秒后,你手上的数字变成 2^n −1
【输入格式】
第一行一个正整数 n。
第二行 2^n 个实数,第 i 个数表示选到 i−1 的概率。
【输出格式】
一个数,表示答案。绝对误差或相对误差不超过 10^−6 即可算通过。
如果无解要输出 INF
【输入样例1】
2
0.25 0.25 0.25 0.25
【输出样例1】
2.6666666667
【输入样例2】
2
1 0 0 0
【输出样例2】
INF
【数据范围】
对于 30% 的数据,n≤10。
对于 60% 的数据,n≤15。
对于 100% 的数据,n≤20。