zoukankan      html  css  js  c++  java
  • [题解]CodeForces442B Andrey and Problem

    传送门

    题目描述

    给出大小为(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)值较大的更优。那么从大到小加就可以了

  • 相关阅读:
    装饰者模式
    代理模式
    享元模式
    模板模式
    命令模式
    建造者模式
    单例模式
    观察者模式
    迭代器模式
    访问者模式
  • 原文地址:https://www.cnblogs.com/SCL123/p/11835008.html
Copyright © 2011-2022 走看看