[2019.2.13]BZOJ4318 OSU!

news/2024/7/3 13:54:39

我们记\(pw3_i\)表示前\(i\)个位置,结尾为\(i\)的最长全1子串的期望长度的立方。

如果我们钦定\(p_{n+1}=0\),那么答案\(=\sum_{i=1}^npw3_i\times(1-p_{i+1})\)。乘上\((1-p_{i+1})\)意思是这一位要在下一位为\(0\)的时候才有贡献。

设当前位置为\(i\)

这一位有\(p_i\)的概率为1。那么考虑如何从\(pw3_{i-1}\)转移到\(pw3_i\)

发现\((x+1)^3=x^3+3x^2+3x+1\)

我们记\(pw2_i\)表示前\(i\)个位置,结尾为\(i\)的最长全1子串的期望长度的平方,\(pw1_i\)表示前\(i\)个位置,结尾为\(i\)的最长全1子串的期望长度。

那么\(pw3_i=(pw3_{i-1}+3pw2_{i-1}+3pw1_{i-1}+1)\times p_i\)

然后我们还要转移\(pw2\)\(pw1\)

同理,\((x+1)^2=x^2+2x+1\)

所以\(pw2_i=(pw2_{i-1}+2pw1_{i-1}+1)\times p_i\)

剩下一个就很简单了,\(pw1_i=(pw1_{i-1}+1)\times p_i\)

做完了。

code:

#include<bits/stdc++.h>
using namespace std;
int n;
double p[100010],pw1[100010],pw2[100010],pw3[100010],ans;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;++i)scanf("%lf",&p[i]);
    for(int i=1;i<=n;++i)pw1[i]=(pw1[i-1]+1)*p[i],pw2[i]=(pw2[i-1]+2*pw1[i-1]+1)*p[i],pw3[i]=(pw3[i-1]+3*pw2[i-1]+3*pw1[i-1]+1)*p[i],ans+=pw3[i]*(1-p[i+1]);
    printf("%.1lf",ans);
    return 0;
}

转载于:https://www.cnblogs.com/xryjr233/p/BZOJ4318.html


http://www.niftyadmin.cn/n/1996505.html

相关文章

Windows外壳名字空间的浏览

Windows外壳名字空间的浏览 姜伟华 Windows95/98对Dos/Win3.x作了许多重大改进&#xff0c;在文件系统方面&#xff0c;它除了采用长文件名替代Dos中的8.3文件名以外&#xff0c;引入外壳名字空间&#xff08;Shell Name Space&#xff09;来代Dos文件系统是其又一大突破&…

webstorm初始化_WebStorm入门配置教程

如何下载WebStorm&#xff1f;去 WebStorm官方网站下载即可&#xff0c;可以免费试用 30 天。获取正版的途径付费购买WebStorm 官方报价是第一年 405 人民币第二年 323 人民币第三年之后 240 人民币2. 如果你是学生&#xff0c;可以获取免费教育版3. 如果你在 GitHub 上的项目持…

JavaScript夯实基础系列(三):this

在JavaScript中&#xff0c;函数的每次调用都会拥有一个执行上下文&#xff0c;通过this关键字指向该上下文。函数中的代码在函数定义时不会执行&#xff0c;只有在函数被调用时才执行。函数调用的方式有四种&#xff1a;作为函数调用、作为方法调用、作为构造函数调用以及间接…

增强的CHtmlView类,在视图里处理HTML元素事件和交换数据

前言 伴随着VC7的诞生&#xff0c;载入IE的对话框成为了新的热点&#xff0c;CDHtmlDialog给不熟悉COM编程的程序员注入了丝丝暖风。处理页面元素的响应事件&#xff0c;与其交换数据都被封装到几组宏内。类似DHTML_EVENT_ONCLICK&#xff0c;DDX_DHtml_Radio的宏被我们添加到实…

python爬取企业电话_如何用python抓取爱企查企业信息

前段时间&#xff0c;经理让我去找一些企业的信息&#xff0c;我平常习惯于使用爱企查。所以&#xff0c;便想着写一个程序来实现这个&#xff0c;所以有以下的代码&#xff1a;import jsonimport requestsimport refrom lxml import etreeurl"https://aiqicha.baidu.com/…

在cc里用class和function实现counter

前言 随着CcFragment支持hook了&#xff0c;私底下有小伙伴问我&#xff0c;在 什么 场景下使用hook&#xff0c;才能体现出hook的精髓&#xff0c;以及什么时候支持useStore和useReducer。 这里我分开回答一下&#xff0c;解开小伙伴的疑惑&#xff1a; 1 什么时候使用hook&am…

CDHtmlDialog类的使用心得

在CDHtmlDialog类使用中&#xff0c;总是会遇到HTML不能正确解析资源的问题。我的经验如下&#xff1a; 1。使用绝对路径在资源里引入HTML网页和图片资源&#xff1a; 使用RES://应用程序名称/资源类型/#资源号&#xff0c; 例如&#xff1a;如果你的应用程序名为c.ex…

tortoisesvn创建部署项目_TortoiseSVN服务器端的配置

编辑推荐:本文来自csdn&#xff0c;主要主要从安装、建立、导入、配置、启动等方面讲解了服务器的配置。配置过程如下&#xff1a;下载所需程序安装(路径可以更改)解压subversion-1.3.2.zip并安装到C:\Subversion按安装一般软件的方法安装TortoiseSVN&#xff0c;成功安装后在任…