题目链接

/*
设f[i]为到i的期望得分,c[i]为到i的期望连续长度
则若s[i]=='x',f[i]=f[i-1], c[i]=0
s[i]=='0',f[i]=f[i-1]+2*c[i-1]+1, c[i]=c[i-1]+1
(因为 (l+1)^2 = l^2+2l+1 -> (l+1)^2-l^2 = 2l+1,连续长度+1会对答案多贡献2l+1)
(有点疑惑为什么是c[i-1]...不过写出来确实是。每一次+2l+1 实际已经与前面已有的连续长度 构成(l+1)^2 的贡献
也就是说,当有'o'时,对答案的贡献是线性的)
s[i]=='?',f[i]=f[i-1]+(2*c[i-1]+1)/2, c[i]=(c[i-1]+1)/2
(两种可能性均等,所以都是1/2的)
*/
#include<cstdio>
using namespace std;
const int N=3e5+5; int n;
double f[N],c[N];//continuation
char s[N]; int main()
{
scanf("%d%s",&n,s+1);
for(int i=1;i<=n;++i)
if(s[i]=='x')
f[i]=f[i-1], c[i]=0;
else if(s[i]=='o')
f[i]=f[i-1]+2.0*c[i-1]+1, c[i]=c[i-1]+1;
else
f[i]=f[i-1]+c[i-1]+0.5, c[i]=0.5*c[i-1]+0.5;
printf("%.4lf",f[n]); return 0;
}

BZOJ.3450.(JoyOI1952) Easy(期望)的更多相关文章

  1. Bzoj 3450: Tyvj1952 Easy (期望)

    Bzoj 3450: Tyvj1952 Easy 这里放上题面,毕竟是个权限题(洛谷貌似有题,忘记叫什么了) Time Limit: 10 Sec Memory Limit: 128 MB Submi ...

  2. Bzoj 3450: Tyvj1952 Easy 期望/概率,动态规划

    3450: Tyvj1952 Easy Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 431  Solved: 325[Submit][Status] ...

  3. BZOJ 3450 Tyvj1952 Easy ——期望DP

    维护$x$和$x^2$的期望递推即可 #include <map> #include <ctime> #include <cmath> #include <q ...

  4. bzoj4318 OSU!和bzoj 3450 Tyvj1952 Easy

    这俩题太像了 bzoj 3450 Tyvj1952 Easy Description 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有n次点 ...

  5. bzoj 3450 Tyvj1952 Easy (概率dp)

    3450: Tyvj1952 Easy Description 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:(我们来简化一下这个游戏的规则有n次点击要做,成功了就是o,失败 ...

  6. BZOJ 3450 Tyvj1952 Easy(期望)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3450 [题目大意] 给出一个字符串,包含o,x和?,一个字符串的得分为 每段连续的o的 ...

  7. BZOJ 3450: Tyvj1952 Easy 数学期望

    Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) ...

  8. 【概率】BZOJ 3450:Tyvj1952 Easy

    Description 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连 ...

  9. BZOJ 3450: Tyvj1952 Easy [DP 概率]

    传送门 题意:$ox?$组成的序列,$?$等概率为$o\ or\ x$,得分为连续的$o$的长度的平方和,求期望得分 一开始没想出来,原因在于不知道如何记录长度 其实我们同时求得分和长度的期望就好了 ...

随机推荐

  1. BFGS算法(转载)

    转载链接:http://blog.csdn.net/itplus/article/details/21897443 这里,式(2.38)暂时不知如何证出来,有哪位知道麻烦给个思路.

  2. eclipse里访问tomcat首页出现404错误解决之法

    首先,添加Tomcat.在菜单栏找到Window—Preferences—Server—Runtime Environments—Add—Apache—选择Tomcat版本—找到Tomcat文件的路径 ...

  3. 整理一下odoo10在windows系统下部署的流程

    odoo10环境搭建 所需依赖: Python3.5 odoo10.0 Node.js PostgreSQL 9.5 PyCharm 专业版 1.首先先安装好Python3.5,并设置好环境变量 2. ...

  4. 基于 OpenSSL 的 CA 建立及证书签发

    http://rhythm-zju.blog.163.com/blog/static/310042008015115718637/ 建立 CA 建立 CA 目录结构 按照 OpenSSL 的默认配置建 ...

  5. zabbix通过简单命令监控elasticsearch集群状态

    简单命令监控elasticsearch集群状态 原理: 使用curl命令模拟访问任意一个es节点可以反馈的集群状态,集群的状态需要为green curl -sXGET http://serverip: ...

  6. CentOS 6.5环境下使用HAProxy+apache实现web服务的动静分离

    HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持 ...

  7. 解析神奇的 Object.defineProperty

    这个方法了不起啊..vue.js是通过它实现双向绑定的..而且Object.observe也被草案发起人撤回了..所以defineProperty更有必要了解一下了. 几行代码看他怎么用 var a= ...

  8. 100以内奇偶数(for循环)

  9. C++ code:main参数

    main函数的参数结构为两项参数: int main(int argc,char** argv){……} main的参数由操作系统传递,所以比较特殊.两个形参名一般是采用习惯名称argc和argv,表 ...

  10. php实现概率性随机抽奖代码

    1.初始数据: 权重越大,抽取的几率越高 [奖品1, 权重 5], [ 奖品2, 权重6], [ 奖品3, 权重 7], [ 奖品4, 权重2] 2.处理步骤: 1)N = 5 + 6 + 7 + 2 ...