嘴巴题6 BZOJ3450JoyOI1952 Easy

Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 936 Solved: 698
[Submit][Status][Discuss]

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基本上很少呢

题解

设到第\(i\)位时,期望后缀\(o\)长度为\(L_i\),期望答案为\(Ans_i\)
不难发现,后缀期望长度每增加\(1\),期望答案就会增加\((L + 1)^2 - L^2 = 2\times L + 1\)
若第\(i + 1\)位为\(o\):则\(L_{i+1} = L_i + 1\), \(Ans_{i+1} = Ans_I + 2\times L_i + 1\)
若第\(i + 1\)位为\(\?\):则\(L_{i+1} = (L_i + 1) \times \frac{1}{2} + 0 \times \frac{1}{2}\),\(Ans_{i+1} = Ans_{I} + \frac{1}{2} \times (2 \times L_i + 1) + \frac{1}{2} \times 0\)
若第\(i + 1\)位为\(x\),则\(L_{i+1} = 0\), \(Ans_{i+1} = Ans_i\)

有人说为啥不把期望长度算完直接平方呢?

因为平方的期望不等于期望的平方,而且有期望的平方总小于等于平方的期望这个东西。

原文地址:https://www.cnblogs.com/huibixiaoxing/p/8604375.html

时间: 2024-08-30 14:01:36

嘴巴题6 BZOJ3450JoyOI1952 Easy的相关文章

ACM-简单题之As Easy As A+B——hdu1040

***************************************转载请注明出处:http://blog.csdn.net/lttree*************************************** As Easy As A+B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 35503    Accepte

嘴巴题1 LA2531 足球联赛

题目 LA2531 足球联赛 题目: 有n只队伍打比赛,给出每只队目前获胜和失败的场数,再给出两两队伍接下来的比赛场次,问你哪些队伍可能的冠军 (摘自http://blog.csdn.net/s_h_r/article/details/46427649) 队伍数\(\leq 25\), 场数\(\leq 100\) 嘴巴: 不会做. 题解: 枚举每支战队x,检查是否可能获胜. 先让x剩下的比赛全部获胜,记录场数为tot,限制其他队伍获胜场数全部\(\leq tot\); 往最大流方向思考,让源点

ACM 2015年上海区域赛A题 HDU 5572An Easy Physics Problem

题意: 光滑平面,一个刚性小球,一个固定的刚性圆柱体 ,给定圆柱体圆心坐标,半径 ,小球起点坐标,起始运动方向(向量) ,终点坐标 ,问能否到达终点,小球运动中如果碰到圆柱体会反射. 学到了向量模板,写法简洁. 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #define clc(a,b) sizeof(a,b,sizeof(a)) 6

CPP 1373 Easy as A+B(冒泡排序)

题目链接: http://cpp.zjut.edu.cn/ShowProblem.aspx?ShowID=1373 题面: Easy as A+B Time Limit:1000MS  Memory Limit:32768K Description: These days, I am thinking about a question, how can I get a problem as easy as A+B? It is fairly difficulty to do such a thi

[LeetCode] 028. Implement strStr() (Easy) (C++/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 028. Implement strStr() (Easy) 链接: 题目:https://oj.leetcode.com/problems/implement-strstr/ 代码(github):https://github.com/illuz/leetcode 题意: 在一个字符串里找另一个字符串在其中的位置

LeetCode刷题流程

(以下内容摘抄自刷知乎关于LeetCode的问题,原文链接:https://www.zhihu.com/question/31092580/answer/54194793) 刷题几个阶段: 1,第一遍:知道.直接看答案,不要自己想,了解所有最优解,方法技巧第一.做题套路,以印象为主. 2,第二遍:熟悉.过easy题,记住:做medium,重点题背,反复背.最简单会,大多不会.记住做题套路,以记住为主. 3,第三遍:做题.做easy题:做部分medium题,hard题有思路.夯实medium基础.

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

[LeetCode]小工具,统计数量,隐藏上锁的题目

LeetCode Problems List没有统计数量的功能,顺手写了一个. 下面两段只是用jquery调整网页上显示的内容,刷新网页就没用了. 比如想看题目里一共有多少Easy, Medium和Hard,就在浏览器Console中运行下面的代码. 还有一种用法,比如看还有多少没做,或者没做的题中有多少Easy, Medium和Hard,先选Unsolved Problems的filter,再用控制台运行该代码. 1 //Count Problems 2 var list = $("tbody

Leetcode_198_House Robber

本文是在学习中的总结.欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/47680663 You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of