zoukankan      html  css  js  c++  java
  • cf442 B.Andrey and Problem

    看题偷瞄到题解2333(以为是劲题呢。。结果是乱贪心,奇怪)

    排序之后,如果加入下一个比现在更优就更新答案(奇怪啊)

    t=ans*(1-a[i])+s*a[i];(ans*(1-a[i])是新的一位不选的概率(即到这位之前已经选好)+选这位(即s*a[i])(s是以前都不选的概率))

     1 #include<bits/stdc++.h>
     2 #define LL long long
     3 #define LD long double  
     4 #define  N 100005
     5 using namespace std;
     6 inline int ra()
     7 {
     8     int x=0,f=1; char ch=getchar();
     9     while (ch<'0' || ch>'9') {if (ch=='-') f=-1; ch=getchar();}
    10     while (ch>='0' && ch<='9') {x=x*10+ch-'0'; ch=getchar();}
    11     return x*f;
    12 }
    13 double ans,s,a[N];
    14 int main()
    15 {
    16     int n=ra();
    17     for (int i=1; i<=n; i++)
    18         scanf("%lf",&a[i]);
    19     sort(a+1,a+n+1);
    20     s=1-a[n]; ans=a[n];
    21     for (int i=n-1; i>=1; i--)
    22     {
    23         double t=ans*(1-a[i])+s*a[i];
    24         if (t>ans) ans=t;
    25         else break;
    26         s*=(1-a[i]);
    27     }
    28     printf("%.12lf",ans);
    29     return 0;
    30 }
  • 相关阅读:
    Linux
    Monkey命令
    ADB命令
    DOS命令
    列表
    函数
    文件读写及实操项目
    Selenium2自动化——初体验
    新开淘宝店怎么提升信誉,是不是真的要刷钻?
    JSFL:导入根文件夹将所有图片添加库链接导出swf
  • 原文地址:https://www.cnblogs.com/ccd2333/p/6369708.html
Copyright © 2011-2022 走看看