码迷,mamicode.com
首页 > 其他好文 > 详细

BZOJ4318: OSU!

时间:2017-10-07 12:31:56      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:printf   none   分享   scanf   一段   main   png   长度   stdio.h   

本来不是来写这题的看名字不错就顺便写了。。

连续一段长度为x的1得分为x^3,现给每个数是0或1的概率,求期望得分。n<=1e5。

方法一:f(i)--前i个数的期望得分,技术分享,P0表示某个数是0的概率,P1表示某段数是1的概率。

这东西不知道怎么维护???

方法二:新进来一个1的贡献为技术分享,所以只要求出:最后连续x个数的期望g 和 最后连续x个数平方的期望h。

注意:辅助求的那两个东西的转移和答案转移不同,辅助的那两个期望:如果读到一个数a,有a的概率贡献g(i-1)+1、h(i-1)+2*g(i-1)+1,有(1-a)的概率贡献0;而答案是:有a的概率贡献f(i-1)+3*h(i-1)+3*g(i-1)+1,有(1-a)的概率贡献f(i-1)。

技术分享
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 #include<algorithm>
 5 //#include<iostream>
 6 using namespace std;
 7  
 8 int n;
 9 double f,ff,fff;
10 double a;
11 int main()
12 {
13     scanf("%d",&n);
14     f=ff=fff=0;
15     for (int i=1;i<=n;i++)
16     {
17         scanf("%lf",&a);
18         fff=fff+(3*ff+3*f+1)*a;
19         ff=(ff+2*f+1)*a;
20         f=(f+1)*a;
21 //      cout<<fff<<endl;
22     }
23     printf("%.1f",fff);
24     return 0;
25 }
View Code

 

BZOJ4318: OSU!

标签:printf   none   分享   scanf   一段   main   png   长度   stdio.h   

原文地址:http://www.cnblogs.com/Blue233333/p/7634063.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!