zoukankan      html  css  js  c++  java
  • Luogu P1654 OSU!

    题目链接:Click here

    Solution:

    定义(E(x))表示在第x位置时的期望得分,考虑(E(x))(E(x+1))之间的关系

    如果(x+1)位置为1,则在(x)位置结束的连续的1长度都要+1

    我们考虑先把((x+1)^3)分解,((x+1)^3=x^3+3x^2+3x+1)

    也就是说对所有之前的极长串,他们都要加上(3x^2+3x+1)的贡献

    则我们考虑来维护(x^2)(x)这两个值的期望

    维护(x)十分简单,(Ex_1(i)=p(i) imes (Ex_1(i-1)+1)),因为是增加值,所以之前的值也都要乘上概率

    考虑如何维护(x^2)((x+1)^2=x^2+2x+1),所以(Ex_2(i)=p_i imes (Ex_2(i-1)+2Ex_1(i-1)+1))

    最后就是答案了:(E(i)=E(i-1)+p(i) imes (3Ex_2(i-1)+3Ex_1(i-1)+1))

    Code

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+1;
    int n;
    double f1,f2,f3,p[N];
    signed main(){
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++)
    		scanf("%lf",&p[i]);
    	for(int i=1;i<=n;i++){
    		f3=f3+p[i]*(3*f2+3*f1+1);
    		f2=p[i]*(f2+2*f1+1);
    		f1=p[i]*(f1+1);
    	}printf("%.1lf
    ",f3);
        return 0;
    }
    
    
  • 相关阅读:
    复利计算--结对1.0,做汉堡,结对2.0
    复利计算1.0,2.0,3.0,4.0,5.0
    2020助教总结
    作业2
    作业一
    linux设置opengl版本
    第一次个人作业
    寒假助教总结
    直播
    2020面向对象程序设计寒假作业3
  • 原文地址:https://www.cnblogs.com/NLDQY/p/11430952.html
Copyright © 2011-2022 走看看