ZJNU-G - Research Productivity Index
思路:
和牛客的C思路一样,QAQ。
代码:
#include<bits/stdc++.h>
#define pii pair<int,int>
#define ll long long
#define cl(x,y) memset(x,y,sizeof(x))
#define ct cerr<<"Time elapsed:"<<1.0*clock()/CLOCKS_PER_SEC<<"s.\n";
const int N=100+10;
const int mod=1e7+9;
const int maxn=0x3f3f3f3f;
const int minn=0xc0c0c0c0;
const int inf=99999999;
using namespace std;
double p[N],dp[N][N];
int cmp(int x,int y)
{
return x>y;
}
int main()
{
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%lf",&p[i]);
sort(p+1,p+n+1,cmp);
dp[0][0]=1;
for(i=1;i<=n;i++)
dp[i][0]=dp[i-1][0]*(1-p[i]/100);
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
dp[i][j]=dp[i-1][j-1]*p[i]/100+dp[i-1][j]*(1-p[i]/100);
double res=0;
for(i=1;i<=n;i++)
{
double sum=0;
for(j=1;j<=i;j++)
sum+=dp[i][j]*pow(j,j*1.0/i);
res=max(sum,res);
}
printf("%.9lf\n",res);
return 0;
}