标签:tom host com accept man hal img animal research
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 3715 Accepted Submission(s): 1276
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; int t; int n; int arr[50]; double dp[50][40010]; //几道题 几分的 概率 double pp; int main(){ cin>>t; while(t--){ cin>>n>>pp; for(int i=0;i<n;i++){ cin>>arr[i]; } memset(dp,0,sizeof(dp)); dp[0][0]=1.0; //0道题0分的概率为1 for(int i=0;i<n;i++){ for(int j=0;j<n*1000;j++){ dp[i+1][j]+=dp[i][j]*0.5; //得分为j的总数 dp[i+1][j+arr[i]]+=dp[i][j]*0.5; } } double res=0; int flag=0; for(int i=n*1000;i>=0;i--){ //注意0也是一种得分 res+=dp[n][i]; if(res>1-pp) {flag=i;break;} } cout << flag << endl; } return 0; }
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; int t; int n; int arr[50]; double dp[50][40010]; //几道题 几分的 概率 double pp; int main(){ cin>>t; while(t--){ memset(dp,0,sizeof(dp)); dp[0][0]=1.0; //0道题0分的概率为1 cin>>n>>pp; for(int i=0;i<n;i++){ cin>>arr[i]; } for(int i=0;i<n;i++){ for(int j=0;j<n*1000;j++){ dp[i+1][j]+=dp[i][j]*0.5; //得分为j的总数 dp[i+1][j+arr[i]]+=dp[i][j]*0.5; } } double res=0; int flag=0; for(int i=n*1000;i>=0;i--){ //注意0也是一种得分 res+=dp[n][i]; if(res>1-pp) {flag=i;break;} } cout << flag << endl;//要用flag标记一下 有可能没有打那输出0 } return 0; }
Little Tiger vs. Deep Monkey(01背包)
标签:tom host com accept man hal img animal research
原文地址:https://www.cnblogs.com/qq-1585047819/p/11687499.html