概率 dp lightoj 1395

Posted pangbi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了概率 dp lightoj 1395相关的知识,希望对你有一定的参考价值。

技术图片

 

 dp[k]用类似于低配版的这道题的做法求出,如下;

技术图片

 

 然后就从k逆推到0就好了

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int MX = 105;
 4 double dp[MX];
 5 int x[MX];
 6 int main()
 7     int T,n,k;
 8     scanf("%d",&T);
 9     for(int cas=1;cas<=T;cas++)
10         memset(dp,0,sizeof(dp));
11         scanf("%d%d",&n,&k);
12         int a=0,b;
13         double sum1=0,sum2=0;
14         for(int i=0;i<n;i++) 
15             scanf("%d",&x[i]);
16             if(x[i]>0) sum1+=x[i];a++;
17             else sum2+=abs(x[i]);
18         
19         if(a==0)
20             printf("Case %d: -1\\n",cas);
21             continue;
22         
23         b=n-a;
24         if(a) sum1/=a;
25         if(b) sum2/=b;
26         k=min(k,b);
27         dp[k]=sum1+(b-k)*sum2/a;
28         for(int i=k-1;i>=0;i--)
29             dp[i]=(dp[i+1]+sum2)*(b-i);
30             dp[i]+=sum1*a;
31             dp[i]/=n-i;
32         
33         printf("Case %d: %.7f\\n",cas,dp[0]);
34     
35     return 0;
36 

 

以上是关于概率 dp lightoj 1395的主要内容,如果未能解决你的问题,请参考以下文章

lightoj1038_概率dp

LightOJ - 1079 概率dp

LightOJ - 1030 概率dp

LightOJ - 1151概率dp+高斯消元

LightOJ1030 Discovering Gold(概率DP)

lightoj 1408 概率dp