题目背景

原 维护队列 参见P1903

题目描述

某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:(

我们来简化一下这个游戏的规则

有nnn次点击要做,成功了就是o,失败了就是x,分数是按combo计算的,连续aaa个combo就有a×aa\times aa×a分,combo就是极大的连续o

比如ooxxxxooooxxx,分数就是2×2+4×4=4+16=202 \times 2 + 4 \times 4 = 4 +16=202×2+4×4=4+16=20。

Sevenkplus闲的慌就看他打了一盘,有些地方跟运气无关要么是o要么是x,有些地方o或者x各有50%的可能性,用?号来表示。

比如oo?xx就是一个可能的输入。 那么WJMZBMR这场osu的期望得分是多少呢?

比如oo?xx的话,?o的话就是oooxx => 9,是x的话就是ooxxx => 4

期望自然就是(4+9)/2=6.5(4+9)/2 =6.5(4+9)/2=6.5了

输入输出格式

输入格式:

第一行一个整数nnn,表示点击的个数

接下来一个字符串,每个字符都是o,x,?中的一个

输出格式:

一行一个浮点数表示答案

四舍五入到小数点后444位

如果害怕精度跪建议用long double或者extended

输入输出样例

输入样例#1:
复制

4
????
输出样例#1: 复制

4.1250

说明

osu很好玩的哦

WJMZBMR技术还行(雾),x基本上很少呢

题解

这个题有点意思。

dp[i]代表到第i个位置总权值的期望。

f[i]代表到第i个位置连续的o的长度。

然后转移的时候分情况:

s[i]=='x'

dp[i]=dp[i-1];f[i]=0;

s[i]=='o'

dp[i]=(g[i-1]+1)^2=g[i-1]^2+2*g[i-1]+1=f[i-1]+2*g[i-1]+1;

f[i]=f[i-1]+1;

s[i]=='?'

dp[i]=0.5*(f[i-1]+2*g[i-1]+1)+0.5*f[i-1];

f[i]=(g[i-1]+1)*0.5+0*0.5;

 #include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
int n;
char s[N];
double dp[N],f[N];
int main(){
scanf("%d",&n);
scanf("%s",s+);
for(int i=;i<=n;i++){
if(s[i]=='?'){
f[i]=(f[i-]+1.0)/2.0;
dp[i]=dp[i-]+0.5+f[i-];
}
if(s[i]=='o'){
f[i]=f[i-]+1.0;
dp[i]=dp[i-]+2.0*f[i-]+1.0;
}
if(s[i]=='x'){
dp[i]=dp[i-];
f[i]=0.0;
}
}
printf("%.4lf",dp[n]);
return ;
}

luogu P1365 WJMZBMR打osu! / Easy(期望DP)的更多相关文章

  1. 洛谷P1365 WJMZBMR打osu! / Easy——期望DP

    题目:https://www.luogu.org/problemnew/show/P1365 平方和怎样递推? 其实就是 (x+1)^2 = x^2 + 2*x + 1: 所以我们要关注这里的 x — ...

  2. Luogu P1365 WJMZBMR打osu! / Easy

    概率期望专题首杀-- 毒瘤dp 首先根据数据范围推断出复杂度在O(n)左右 但不管怎么想都是n^2-- 晚上躺在床上吃东西的时候(误)想到之前有几道dp题是通过前缀和优化的 而期望的可加性又似乎为此创 ...

  3. [BZOJ4318] WJMZBMR打osu! / Easy (期望DP)

    题目链接 Solution Wa,我是真的被期望折服了,感觉这道题拿来练手正好. DP的难度可做又巧妙... 我们定义: \(f[i]\) 代表到第 \(i\) 次点击的时候的最大答案. \(g[i] ...

  4. 洛谷 P1365 WJMZBMR打osu! / Easy

    题目背景 原 维护队列 参见P1903 题目描述 某一天\(WJMZBMR\)在打\(osu~~~\)但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有\(n\)次点击要做,成功 ...

  5. P1365 WJMZBMR打osu! / Easy

    题目背景 原 维护队列 参见P1903 题目描述 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有 nnn 次点击要做,成功了就是o,失败了 ...

  6. WJMZBMR打osu! / Easy

    WJMZBMR打osu! / Easy 有一个由o,x,?组成的长度为n的序列,?等概率变为o,x,定义序列权值为连续o的长度o的平方之和,询问权值的期望, 解 注意到权值不是简单的累加关系,存在平方 ...

  7. P1365 WJMZBMR打osu! / Easy-洛谷luogu

    传送门 题目背景 原 维护队列 参见P1903 题目描述 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有nn次点击要做,成功了就是o,失败 ...

  8. 【BZOJ3450】Easy [期望DP]

    Easy Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 某一天WJMZBMR在打osu~~ ...

  9. 【BZOJ3450】Tyvj1952 Easy 期望DP

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

随机推荐

  1. 路飞学城Python-Day19(practise)

    # 特性1.继承:2.多态:3.封装 # 1.继承的用处:通过继承就可以解决类与类之间的代码冗余关系 # 2.多态的用处:1.增加了程序的灵活性,以不变应万变,使用者都是同一种形式去调用(func(a ...

  2. node——REFL介绍

    看视频笔记 REFL全称:Read-Eval-Loop(交互式解释器) R 读取 -读取用户输入,解析输入了javascript数据结构并存储在内存中 E 执行 -执行输入的数据结构 P 打印 -输出 ...

  3. webpack安装,npm WARN optional SKIPPING OPTIONAL DEPENDENCY,npm WARN notsup SKIPPING OPTIONAL DEPENDENCY警告

    npm install webpack -g//全局安装webpack 电脑上安装完后: 其中有两个警告: npm WARN optional SKIPPING OPTIONAL DEPENDENCY ...

  4. 在用HTML+css写页面中遇到的问题

    一.清除浮动. (1)verflow:hidden;这个CSS样式是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很 了解.一提到清除浮动,我们就会 ...

  5. CSS Grid(CSS网格)

    Grid被设计来做一些Flexbox不能做的事情,所以不是被设计来取代Flexbox的. flexbox 一维的 Grid 二维的 总结:  Grid Items作用在Grid Container的直 ...

  6. 使用Git--将本地项目提交到Github

    前置工作 1. 在GitHub官网注册一个GitHub账号: 2. 安装git工具,在Git官网下载对应版本的Git: 方法一: 1. 进入Github首页,点击New repository新建一个项 ...

  7. Virtual Box 新建一个虚拟机安装系统(补充:WIN7 64 bit 系统虚拟机无法安装 64 bit 系统问题)

    1.安装Virtual Box好后,点击新建 2.配置内存大小,这个根据自己需要配置就好 3.创建虚拟硬盘 这里选择固定分配.动态分配都可以,接下来就分配硬盘大小了 4.新建好后我们点击刚才建立的虚拟 ...

  8. IE6 浏览器常见兼容问题 共23个

    1.<!DOCTYPE HTML>文档类型的声明. 产生条件:IE6浏览器,当我们没有书写这个文档声明的时候,会触发IE6浏览器的怪异解析现象: 解决办法:书写文档声明. 2.不同浏览器当 ...

  9. PL/SQL基本语法

    *2.PL/SQL基本语法   1)匿名块   一段不能在数据库存储的PL/SQL. 基本结构如下:   DECLARE     //变量的声明定义区域(可省略)   BEGIN     //业务处理 ...

  10. 2015 Multi-University Training Contest 4 hdu 5334 Virtual Participation

    Virtual Participation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Ot ...