tjut 4336

来源:互联网 发布:淘宝装修生成 编辑:程序博客网 时间:2024/06/09 23:36
#include<stdio.h>#include<algorithm>#include<iostream>#include<string.h>using namespace std;const int MAXN=22;double p[MAXN];double dp[1<<MAXN];int main(){    int n;    while(scanf("%d",&n)!=EOF)    {        double tt=0;        for(int i=0;i<n;i++)        {            scanf("%lf",&p[i]);            tt+=p[i];        }        tt=1-tt;//tt就表示没有卡片的概率了        dp[(1<<n)-1]=0;        for(int i=(1<<n)-2;i>=0;i--)        {            double x=0,sum=1;            for(int j=0;j<n;j++)            {                if((i&(1<<j)))x+=p[j];                else sum+=p[j]*dp[i|(1<<j)];            }            dp[i]=sum/(1-tt-x);        }        printf("%.5lf\n",dp[0]);            }    return 0;}

0 0
原创粉丝点击