Bzoj 3450: Tyvj1952 Easy

这里放上题面,毕竟是个权限题(洛谷貌似有题,忘记叫什么了)

Time Limit: 10 Sec Memory Limit: 128 MB

Submit: 1031 Solved: 772

Description

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

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

有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连续a个comb就有aa分,comb就是极大的连续o。

比如ooxxxxooooxxx,分数就是2
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了

Input

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

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

Output

一行一个浮点数表示答案

四舍五入到小数点后4位

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

Sample Input

4

????

Sample Output

4.1250

n<=\(300000\)

osu很好玩的哦

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

HINT

Source

我们都爱GYZ杯

题解

分为三种情况考虑

由于此题期望计算的是长度的平方\(l\)

\(s[i] == 'x'\)时

\(l\)变成\(0\),且对答案没有贡献

\(s[i] == 'o'\)时

\(l\)长度\(+1\),对答案的贡献:\(l^2\) → \((l + 1) ^2 = l^2 + 2 * l + 1\)对答案的贡献为\(2 * l + 1\)

\(s[i] == '?'\)时

有\(1/2\)的几率\(l = 0\)或者\(l + 1\),期望长度为\((l + 1) / 2\)所以长度变成\((l+1)/2\)

对答案的贡献,只有\(1/2\)的概率是跟\(s[i] == 'x'\)一样,所以贡献时\(s[i] == 'x'\)的一半,即\((2 * l + 1 )/ 2\)

更新\(l,ans\)的顺序是一个坑点.

#include <iostream>
#include <cstring>
#include <cstdio>
const int maxN = 300000 + 7;
using namespace std; int L,len;
char s[maxN]; int main(int argc, char const *argv[])
{
scanf("%d",&len);
scanf("%s",s + 1);
double ans = 0,l = 0;
for(int i = 1;i <= len;++ i) {
if(s[i] == 'o') {ans += 2.0 * l + 1;l ++;}
if(s[i] == 'x') {l = 0;}
if(s[i] == '?') {ans += (2.0 * l + 1) / 2.0;l = (l + 1) / 2;}
}
printf("%.4lf", ans);
return 0;
}

Bzoj 3450: Tyvj1952 Easy (期望)的更多相关文章

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

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

  2. BZOJ 3450 Tyvj1952 Easy ——期望DP

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

  3. bzoj4318 OSU!和bzoj 3450 Tyvj1952 Easy

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

  4. bzoj 3450 Tyvj1952 Easy (概率dp)

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

  5. BZOJ 3450 Tyvj1952 Easy(期望)

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

  6. BZOJ 3450: Tyvj1952 Easy 数学期望

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

  7. 【概率】BZOJ 3450:Tyvj1952 Easy

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

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

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

  9. BZOJ.3450.(JoyOI1952) Easy(期望)

    题目链接 /* 设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. 用户角色权限查询添加bug集锦 用户密码加密 MD5 加盐 随机盐 spring的加密bcrypt

    package cn.itcast.encode; import org.apache.commons.lang3.RandomStringUtils; import org.springframew ...

  2. 黑马学习Ajax 跨域资源共享 jQuery+jsonp实现

  3. easyui datagrid编辑时编辑框自动获取焦点

    onDblClickCell:function(rowIndex, field, val){//双击单元格监听器 $(this).datagrid('beginEdit',rowIndex);//开启 ...

  4. Codeforces Round #566 (Div. 2) C. Beautiful Lyrics

    链接: https://codeforces.com/contest/1182/problem/C 题意: You are given n words, each of which consists ...

  5. jQuery背景插件backstretch使用指南

    http://www.bkjia.com/Javascript/987917.html

  6. 【手撸一个ORM】第一步、实体约定和描述

    一.约定 数据实体必须实现 IEntity 接口,该接口定义了一个int类型的Id属性,既每个实体必须有一个名称为Id的自增主键. 若数据表的主键列名称不是Id,可以通过 [MyKey("主 ...

  7. 正确使用Enum的FlagsAttribute

    正确使用Enum的FlagsAttribute FlagsAttribute 标志枚举对象的值可以包括多个枚举成员,每个成员代表枚举值中的一个位域 使用步骤 添加标记[Flags] 用 2 的幂(即 ...

  8. Unity3d中3D Text对模型的穿透显示

    昨晚,好友在电话里问我在Unity3d中使用3D Text,不想让其穿透模型显示,即想让场景中的3D Text与模型有正确的遮挡关系,怎么解? 今早谷歌上查了查,明白了原因,因为3D Text的默认材 ...

  9. ubuntu 14.04 安装minidwep-gtk

    一,安装相关的依赖 sudo apt-get install build-essential libssl-dev iw libpcap-dev sqlite3 libsqlite3-dev libp ...

  10. css3Transitions 实现的鼠标经过图标位移、旋转、翻转、发光、淡入淡出等多种特效

    HTML如下:   1 <div class="container"> 3 <!--特效1 --> <section id="set-1&q ...