#P635. 【HAOI2015】按位或

【HAOI2015】按位或

【题目描述】

刚开始你有一个数字 0,每一秒钟你会随机选择一个 [0,2n1] 的数字,与你手上的数字进行按位或(C 和 C++ 的 |,Pascal 的 or)操作。

选择数字 i 的概率是 p[i]。保证 0p[i]1,p[i]=1

问期望多少秒后,你手上的数字变成 2^n1

【输入格式】

第一行一个正整数 n

第二行 2^n 个实数,第 i 个数表示选到 i1 的概率。

【输出格式】

一个数,表示答案。绝对误差或相对误差不超过 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% 的数据,n10

对于 60% 的数据,n15

对于 100% 的数据,n20