题意

  一个长度为 $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. yum安装epel源

    国内yum源的安装(163,阿里云,epel)   国内yum源的安装(163,阿里云,epel) ----阿里云镜像源 1.备份 mv /etc/yum.repos.d/CentOS-Base.re ...

  2. HTTP及WEB框架简述

    HTTP介绍 Hyper Text Transfer Protocol,超文本传输书协议,是万维网数据通信的基础,规定了请求和响应标准. HTTP工作原理 HTTP 请求以及响应的步骤 客户端连接到W ...

  3. git与gitlab工具

    1.Git和SVN的对比 1)git是分布式的,svn是集中式的.(最核心) 2)git是每个历史版本都存储完整的文件,便于恢复,svn是存储差异文件,历史版本不可恢复.(核心) 3)git可离线完成 ...

  4. python中True,False与0,1之间的关系

    demo1 >>> print(True == 1) >>> print(True == 2) >>> print(False == 0) > ...

  5. 【Python开发】urllib2.urlopen超时问题

    原帖地址:http://hi.baidu.com/yss1983/item/933fbe45a09c43e01381da06 问题描述:     没有设置timeout参数,结果在网络环境不好的情况下 ...

  6. C++深拷贝和浅拷贝细节理解

    前提 在对象拷贝过程中,如果没有自定义拷贝构造函数,编译器会提供一个缺省的拷贝构造函数,缺省的拷贝构造函数对于基本类型的成员变量,按字节复制,对于类类型的成员变量则调用其相应的拷贝构造函数. 资料注解 ...

  7. [转帖]RPM的原理及rpm命令常用参数

    RPM的原理及rpm命令常用参数 2015年09月14日 15:39:43 lose_wait 阅读数 1298 https://blog.csdn.net/u012012939/article/de ...

  8. Git 发生Another git process seems to be running in this repository, e.g. an editor opened by 'git commit'.错误

    Git 发生 Unable to create 'D:/Model/test/.git/index.lock': File exists. Another git process seems to b ...

  9. MyISAM与InnoDB的索引差异

    数据库的索引分为主键索引(Primary Index)与普通索引(Secondary Index).InnoDB和MyISAM是怎么利用B+树来实现这两类索引的,又有什么差异呢?一.MyISAM的索引 ...

  10. 一步一步带你入门MySQL中的索引和锁 (转)

    出处: 一步一步带你入门MySQL中的索引和锁 索引 索引常见的几种类型 索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等.本文主要探讨 MySQL 的默认存储引擎 InnoDB 的索引结 ...