题库6693 http://acm.hdu.edu.cn/showproblem.php?pid=6693
计算概率的一道题,给出几个礼物成功概率,计算只有一个礼物成功的最大概率是多少
例子:
2
0.3 0.3
ans = 0.3*0.7 + 0.7 * 0.3
看懂题意直接暴力一遍
AC代码
#include<iostream>
#include<algorithm>
using namespace std;
double a[1000005];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%lf",&a[i]);
a[i] = 1-a[i];
}
sort(a,a+n);
double maxx = 0;
int index=0;
for(int k=1;k<=n;k++)
{
double sum = 0;
for(int i=0;i<k;i++)
{
double tmp = 1;
for(int j=0;j<k;j++)
{
if(j==i)
tmp *= 1-a[j];
else
tmp *= a[j];
}
sum += tmp;
}
if(sum-maxx > 0)
maxx = sum;
else
break;
}
printf("%.12f\n",maxx);
}
return 0;
}