zoukankan      html  css  js  c++  java
  • OSU!

    OSU! 

    弱化版

    首先,由题可知,本题是个期望题,根据期望的套路,定义f[x]为x前的答案,所以最终答案就是f[n]

    f[x]表示前x期望答案,即每一段的长度立方和的期望(一定要清楚)

    但是三次方不好算,由于期望有一些特殊的性质,所以我们引入g[x]和k[x]

    g[x]表示前x最后期望长度为g[x],k[x]表示前x最后长度平方的期望为k[x](一定要清楚定义)

    g[x]的转移即为g[x]=(g[x-1]+1)*p[x](因为是最后的长度,所以必须乘p[x])

    k[x]的转移即为k[x]=(k[x-1]+2*k[x-1]+1)*p[x]

    ————————————————————————————————————————————————————

    本题提供了一种很好的构造期望转移方程的方法,如f[x]可以表示从x中选两个人(可以重复,并且(a,b),(b,a)算两种方案),这里的选有别于题目中的成功

    则因为最后一个必须成功才有贡献,所以先乘p[x],然后可以选最后一个人x,则另一个人要在x-1个人中选,即为g[x-1]

                                                                                  也可以不选最后一个人x,而在前面选两个人,即为k[x-1]

    ————————————————————————————————————————————————————

    f[]的统计和k的差不多

    不同之处在于f[]不一定要选最后一个

    所以就是在x个人中随意选出3个人(这里的选不同于题)

    则最后一个人不成功是可以的,此时最后一个人的只能是前面有贡献,即为f[i-1]

       以下的都必须要最后一个成功,(否则就不能和前面的构成贡献了)

       选的时候最后一个人选一次(因为是无序的,所以选的三个名额每个都可以给最后一个人),此时为k[x-1]*3*p[x]

       选的时候最后一个人可以选两次(3个名额中选2个名额,还是3种情况,所以还要乘3)  ,此时为g[x-1]*3*p[x]

       还可以三个名额都给最后一个人,即为1,贡献为p[x]

  • 相关阅读:
    神奇玻璃制品:鲁珀特之泪
    ReCaptcha——基于验证码的数据挖掘
    GCC 编译使用动态链接库和静态链接库
    转:Android View.post(Runnable )
    两个adb命令使用的问题
    转:android menu 实现动态修改menu
    Android Dialog自定义
    转:ActivityGroup + GridView 实现Tab分页标签
    TabHost与ActivityGroup整理
    转:Android之Tab分页标签的实现方法一TabActivity和TabHost的结合
  • 原文地址:https://www.cnblogs.com/LELElele01/p/12070693.html
Copyright © 2011-2022 走看看