题目描述
给出大小为(n)的数组(p,0leq p_i leq 1),定义一个子序列的权值为
(sum_i p_i*prod_{j eq i}(1-p_j))
求最大的权值
((1leq n leq 100))
分析
首先,如果有(p_i=1),那么答案为1,否则:
对于当前的一个集合,考虑向其中加入元素(u)会使得它更优,那么有:
(sum_{i}p_i*prod_{j eq i}(1-p_j)<(1-p_u)*sum p_i*prod_{j eq i}(1-p_j)+p_u*prod (1-p_i))
化简之后可以得到
(sum frac{p_i}{1-p_i}<1)
然后再考虑对于两个元素,先加哪一个更优,自己推一波可以发现先加(p)值较大的更优。那么从大到小加就可以了