Valentine's Day
题意:
任选k个礼物,求能使得女朋友高兴一次的最大概率。
思路:
枚举能使得概率变大的p即可。
代码:
#include<bits/stdc++.h>
using namespace std;
double p[10005];
const double eps=1e-7;
int main(){
int T;
scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%lf",&p[i]);
sort(p+1,p+1+n);
double ans=p[n],kx=p[n],bkx=1-p[n];
for(int i=n-1;i>=1;i--){
if(kx*(1-p[i])+bkx*p[i]>ans){
kx=kx*(1-p[i])+bkx*p[i];
ans=kx;
bkx=bkx*(1-p[i]);
}
}
printf("%.12lf\n",ans);
}
return 0;
}