期望dp--BZOJ3450 Easy
Easy
Description
某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:(
我们来简化一下这个游戏的规则
有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连续a个comb就有a*a分,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
HINT
n<=300000
osu很好玩的哦
WJMZBMR技术还行(雾),x基本上很少呢
题解
用dp[i]表示第i次点击的期望得分,len[i]表示第i次点击时o的期望长度。
分类讨论如下:
1.当第i次点击为o时
显然o的长度+1,该次得分为(len[i−1]+1)^2=len[i−1]^2+2*len[i−1]+1所以此次点击的贡献为2len[i−1]+1
2.当第i次点击为x时
o的长度变为0,该次得分等于上一次得分。
3.当第i次点击为?时
?的情况下,o和x的概率各为50%,所以该次点击的贡献等于两种情况的平均值,长度同理,即:
dp[i]=dp[i−1]/2+(dp[i-1]+2len[i−1]+1)/2
len[i]=0/2+(len[i−1]+1)/2;
说实话这题也没用dp。。。
#include<bits/stdc++.h>
using namespace std;
const int M=3e5+5;
int n;
double dp[M],len[M];
char ch[M];
void in()
{scanf("%d%s",&n,ch);}
void ac()
{for(int i=0;i<n;++i){if(ch[i]=='o')len[i]=len[i-1]+1,dp[i]=dp[i-1]+2*len[i-1]+1;elseif(ch[i]=='x')len[i]=0,dp[i]=dp[i-1];else len[i]=(len[i-1]+1)*0.5,dp[i]=dp[i-1]+len[i-1]+0.5;}printf("%.4lf",dp[n-1]);
}
int main()
{in();ac();return 0;
}
期望dp--BZOJ3450 Easy相关推荐
- WJMZBMR打osu! / Easy【期望dp】
>Link luogu P1365 >Description 有一个长度为 n 的仅由ooo,xxx,???三个字符组成的字符串 设字符串的分数为:其中长度为 aaa 的只包含 ooo 的 ...
- [洛谷 1365] WJMZBMR打osu! / Easy {期望DP}
题目 https://www.luogu.org/problemnew/show/P1365 解题思路 这是我做的第三道期望DP.跟前两道的不同之处,在于它连续的一段具有不确定性且没有给出n的范围.所 ...
- 【BZOJ4318】OSU!【期望DP】
题意: 有 n 个操作,有 Ai 的概率成功,连续成功 x 次 对答案的贡献是 x ^ 3,断掉就要重新记,求期望的答案 ( 期望DP )这道题和 bzoj3450一样,题意也一样,不过要注意的是平 ...
- luogu P4745 [CERC2017]Gambling Guide(期望DP + 最短路实现)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P4745 [CERC2017]Gambling Guide(期望DP + 最短路实现) Weblin ...
- [SCOI2008]奖励关(期望dp)
你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃). 宝 ...
- 【bzoj4318】OSU! 期望dp
题目描述 osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的0 ...
- 【loj6342】跳一跳 期望dp
题目描述 一个人从 $1$ 开始向 $n$ 跳,在 $i$ 时会等概率跳到 $i,i+1,...,n$ 之一.求从 $1$ 跳到 $n$ 的期望步数. $n\le 10^7$ . 题解 期望dp傻逼题 ...
- 【高斯消元】兼 【期望dp】例题
[总览] 高斯消元基本思想是将方程式的系数和常数化为矩阵,通过将矩阵通过行变换成为阶梯状(三角形),然后从小往上逐一求解. 如:$3X_1 + 2X_2 + 1X_3 = 3$ $ ...
- Luogu P3251 [JLOI2012]时间流逝 期望dp
题面 题面 题解 期望\(dp\)好题! 今年\(ZJOI\)有讲过这题... 首先因为\(T\)只有\(50\),大力\(dfs\)后发现,可能的状态数最多只有\(20w\)左右,所以我们就可以大力 ...
- 【bzoj5197】[CERC2017]Gambling Guide 期望dp+堆优化Dijkstra
题目描述 给定一张n个点,m条双向边的无向图. 你要从1号点走到n号点.当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点. 每当完成一次交易时,你可以选择 ...
最新文章
- [scala-spark]2. Scala运行原理与源码查看
- 实操|如何将 Containerd 用作 Kubernetes runtime
- .net自定义控件Control、WebControl、CompositeControl
- linux libbz2.so.1,libbz2.so.1.0 = not found 试过了链接和设置环境变量
- 29 | 如何判断一个数据库是不是出问题了?
- C#算法设计排序篇之08-计数排序(附带动画演示程序)
- windows IDA 调试SO
- SQL优化的一些总结
- IDEA 插件开发 发送弹框提示信息
- 通过ROBOCOPY工具快速删除文件夹
- 硬盘出现坏道的处理方法
- cf英文名字格式好看的_cf好看的英文名字格式:、I (~) you ?
- 关于微信小程序中时间预约的简单实现
- 用引导对象生成图像描述(Intention Oriented Image Captions with Guiding Objects 翻译)
- raptor的基本符号有_Raptor 基本符号有( )。
- websphere安装was8.5
- 商务个人邮箱如何注册申请?商务邮箱账号怎么登录?
- 熬夜整理小米Java面试题,已拿offer
- 计算机组成原理第二章例题解析(下)
- 与幼儿园小朋友一起过感恩节心得
热门文章
- 根据录入的计算公式计算_超全的铝材重量计算公式
- python有趣的代码-分享几款由quot;Python”语言编写的quot;有趣、恶搞、好玩”的程序代码...
- 学python需要什么基础-自学Python需要怎样的基础和准备
- python趣味编程100例-达人迷 Python趣味编程10例
- python下载-【Python下载 官方版】Python 3.8.0-ZOL软件下载
- 讯飞输入法10周年:日语音交互次数超10亿
- 语音识别技术原理概述!
- 博越同级别没对手!敢和同级别quot;王者quot;硬碰硬!
- 语音识别 AI 挑战赛上线:用深度学习三种结构,对 50 种环境声音分类!
- cover 在html中的作用,Cover