hdu4815Little Tiger vs. Deep Monkey 概率dp

来源:互联网 发布:视频观看软件 编辑:程序博客网 时间:2024/06/08 01:24
//给n(<=40)个数ai(<=1000)//猴每次0.5的概率得到ai这个分数//问人最少需要多少值才能在概率至少大于p的情况比//猴的分数大#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 4e4+10 ;double dp[maxn] ;int main(){    int t ;    scanf("%d" , &t) ;    while(t--){        int n ;        double p ;        scanf("%d%lf"  ,&n , &p) ;        memset(dp , 0 , sizeof(dp)) ;        dp[0] = 1 ;        for(int i = 1;i <= n;i++){            int c ;            scanf("%d" , &c) ;            for(int j = maxn-1;j >= c;j--){                dp[j] = dp[j-c]*0.5 + dp[j]*0.5;            }            for(int j = c-1;j >= 0;j--){                dp[j]*=0.5 ;            }        }        double sum = 0 ;        int ans = 0 ;        for(int j = 0;j < maxn;j++){            sum += dp[j] ;            if(sum >= p){                ans = j ;                break ;            }        }        printf("%d\n" , ans) ;    }    return  0 ;}

0 0
原创粉丝点击