问题描述
童年时代,你是否热衷于搜集零食里的卡片呢?比如你集齐了108张水浒英雄的卡片,你会感到非常有成就感,而且还可以去兑换奖品。
作为一个聪明的小孩,你注意到如果你要赢得奖品,你必须买很多很多的零食才能搜集齐卡片。要赢得奖品,你估计要买多少袋零食才能成功?
输入格式
第一行,一个整数$N(1 <= N <= 20), 表示总共有N种不同的卡片。
第二行,N个空格间隔的实数p1, p2, …, pN, (p1 + p2 + … + pN <= 1), 表示零食袋中每种卡片出现的概率。
注意:一包零食中最多有一张卡片,也可能一张都没有。
输出格式
一个实数,表示你计算的结果,保留6位小数
输入样例
2
0.1 0.4
输出样例
10.500000
思路
这道题题目化简一下,意思就是:
有 N 袋零食,零食里面有卡片 i 的概率为 P i P_i Pi,求每张卡片都至少有一张(拿到最后那到的那一张卡)的期望时间。
因为是“”拿到最后一张卡片的期望时间“”,所以很容易想到Min-Max容斥。
设 S S S 为拿到每一张卡的期望时间, T T T 是 S S S 的子集, max ( S ) \max(S) max(S)表示 S S S 中的最大值(拿到最后那到的那一张卡的期望时间)则