题意

  一个长度为 $n$ 的字符串,第 $i$ 位有 $p_i$ 的概率是 $1$,否则是 $0$。一个字符串的分数定义为:对于字符串中每一个极长的连续一段 $1$,设这段 $1$ 的长度为 $x$,则分数累加 $x^3$。

  求字符串的期望分数。

题解

  考虑分数累加 $x$ 而不是 $x^3$ 时怎么做。

  设 $f_{i,j}$ 表示分数累加 $x$ 的 $j$ 次方时,第 $1$ 到 $i$ 位的期望分数。

  则 $f_{i,1}$ 的转移显然为 $f_{i,1} = (1-p_i)\times f_{i-1,1} + p_i\times (f_{i-1,1}+1)$。

  就是分两种情况:放 $0$,结束前面连续的一段 $1$(前面连续的一段 $1$ 的长度可能是 $0$);放 $1$,延长前面连续的一段 $1$(前面可能是 $0$,那就是新起一段 $1$)。

  我们在转移 $f_{i,3}$ 时再考虑断的情况,所以把放 $1$ 的转移提出来。设 $g_{i,j}=p_i\times (g_{i-1,j}+1)$,显然这是分数累加 $x$ 的 $j$ 次方的情况,而 $x$ 是当前连续段的长度,所以这也是当前连续的一段 $1$ 的期望长度的 $j$ 次方

  之后我们只会用到放 $1$ 的情况,即 $g_{i,1}$。

 

  然后考虑 $f_{i,2}$,我们发现 $f_{i,2} = f_{i-1,2}\times (1-p_i) + (f_{i-1,2}+?)\times p_i$

  $?$ 就是成功连接所增加的分数,这里显然不是 $1$,我们考虑怎么表示它。

  设当前连续的一段 $1$ 的长度为 $len$,不难发现 $(len+1)^2 = len^2+2len+1$,即连续一段 $1$ 的长度从 $len$ 变为 $len+1$ 时,分数会加 $2len+1$。

  所以 $f_{i,2} = f_{i-1,2}\times (1-p_i) + (f_{i-1,2}+2len+1)\times p_i$。

  而 $len$ 的期望值为 $g_{i,1}$,所以 $f_{i,2} = f_{i-1,2}\times (1-p_i) + (f_{i-1,2}+2g_{i,1}+1)\times p_i$。

  与一次方同理,之后我们只会用到放 $1$ 的情况,即 $g_{i,2}$。

  最后考虑 $f_{i,3}$,类似 $f_{i,2}$,$f_{i,3} = f_{i-1,3}\times (1-p_i) + (f_{i-1,3}+?)\times p_i$。

  显然 $(len+1)^3 = len^3  + 3len^2 + 3len + 1$,即延长一位 $1$ 会增加 $3len^2 + 3len + 1$ 的分数。

  而 $len$ 的期望值为 $g_{i,1}$,$len^2$ 的期望值为 $g_{i,2}$。

  所以 $f_{i,3} = f_{i-1,3}\times (1-p_i) + (f_{i-1,3}+3g_{i,2}+3g_{i,1}+1)\times p_i = f_{i-1,3} + (3g_{i,2}+3g_{i,1}+1)\times p_i$。

  $O(n)$ 递推即可。

  哇好神仙啊,没有脑子的我对着式子瞪了一小时才突然明白那群人的式子是怎么得的

【bzoj 4318】OSU!的更多相关文章

  1. 【BZOJ 1150】 1150: [CTSC2007]数据备份Backup (贪心+优先队列+双向链表)

    1150: [CTSC2007]数据备份Backup Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味 的,因此你想设 ...

  2. Kruskal算法及其类似原理的应用——【BZOJ 3654】tree&&【BZOJ 3624】[Apio2008]免费道路

    首先让我们来介绍Krukal算法,他是一种用来求解最小生成树问题的算法,首先把边按边权排序,然后贪心得从最小开始往大里取,只要那个边的两端点暂时还没有在一个联通块里,我们就把他相连,只要这个图里存在最 ...

  3. 【BZOJ 2957】楼房重建&&Codechef COT5 Count on a Treap&&【NOIP模拟赛】Weed 线段树的分治维护

    线段树是一种作用于静态区间上的数据结构,可以高效查询连续区间和单点,类似于一种静态的分治.他最迷人的地方在于“lazy标记”,对于lazy标记一般随我们从父区间进入子区间而下传,最终给到叶子节点,但还 ...

  4. LCA 【bzoj 4281】 [ONTAK2015]Związek Harcerstwa Bajtockiego

    [bzoj 4281] [ONTAK2015]Związek Harcerstwa Bajtockiego Description 给定一棵有n个点的无根树,相邻的点之间的距离为1,一开始你位于m点. ...

  5. 【BZOJ 1191】 [Apio2010]特别行动队 (斜率优化)

    dsy1911: [Apio2010]特别行动队 [题目描述] 有n个数,分成连续的若干段,每段的分数为a*x^2+b*x+c(a,b,c是给出的常数),其中x为该段的各个数的和.求如何分才能使得各个 ...

  6. 【BZOJ 1096】 [ZJOI2007]仓库建设 (斜率优化)

    1096: [ZJOI2007]仓库建设 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3940  Solved: 1736 Description ...

  7. 【BZOJ 2132】圈地计划 && 【7.22Test】计划

    两种版本的题面 Description 最近房地产商GDOI(Group of Dumbbells Or Idiots)从NOI(Nuts Old Idiots)手中得到了一块开发土地.据了解,这块土 ...

  8. -【线性基】【BZOJ 2460】【BZOJ 2115】【HDU 3949】

    [把三道我做过的线性基题目放在一起总结一下,代码都挺简单,主要就是贪心思想和异或的高斯消元] [然后把网上的讲解归纳一下] 1.线性基: 若干数的线性基是一组数a1,a2,a3...an,其中ax的最 ...

  9. 【BZOJ 1032】 [JSOI2007]祖码Zuma

    [题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1032 [题意] [题解] /* 设f[i][j]表示从第i个珠子开始的j个珠子被消除; ...

随机推荐

  1. Unity中的全局坐标系和局部坐标系

      全局坐标系 描述游戏场景内所有物体位置和方向的基准,也称为世界坐标系.在Unity场景中创建的物体都是以全局坐标系中的坐标原点(0,0,0)来确定各自的位置的. 局部坐标系 每个物体都有其独立的坐 ...

  2. 自定义 filter simple_tag inclusion_tag 总结

    在已经注册的app下创建templatetags的python包 在包内创建py文件 my_tags.py 在py文件中写代码: from django import template registe ...

  3. yum安装telnet如何开启telnet服务

    1.# yum  install  -y  telnet  telnet-server  xinetd   (其中telnet-server是由xinetd管理的,所以得下载xinetd服务) 2.修 ...

  4. 强化学习复习笔记 - DEEP

    Outline 激活函数 使用逼近器的特点: 较少数量的参数表达复杂的函数 (计算复杂度) 对一个权重的调整可以影响到很多的点 (泛化能力) 多种特征表示和逼近器结构 (多样性) 激活函数 Sigmo ...

  5. flask类装饰器

    from flask import Flask,request,views from functools import wraps app = Flask(__name__) #自定义登录装饰器 de ...

  6. Serialize and Deserialize N-ary Tree

    Serialization is the process of converting a data structure or object into a sequence of bits so tha ...

  7. (5.5)mysql高可用系列——MySQL半同步复制(实践)

    关键词,mysql半同步复制 [0]实验环境 操作系统:CentOS linux 7.5 数据库版本:5.7.24 数据库架构:主从复制,主库用于生产,从库用于数据容灾和主库备机,采用默认传统的异步复 ...

  8. Oracle中分析函数

    1. row_number() over(PARTITION BY ...ORDER BY...)--在求第一名成绩的时候,不能用,因为如果有两个并列第一,只会返回一个 rank() over(PAR ...

  9. Sublime Text 3 注册激活码

    Sublime Text 3 注册激活码 ----- BEGIN LICENSE ----- sgbteam Single User License EA7E-1153259 8891CBB9 F15 ...

  10. Anaconda中安装pytorch

    Anaconda中安装pytorch 创建一个虚拟环境 conda create --name machinelearning python=3.7 激活虚拟环境 activate machinele ...