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