T1

EASY

我们设\(f_i\)表示到\(i\)的连续个数平方的期望。 \(g_i\)表示到到\(i\)的连续个数的期望

在维护\(f_i\)的同时维护一下\(g_i\)就行了。

转移方程: \(g_i\)= \(p_i \times g_{i-1}\);

\(f_i = p_i \times (f_{i-1} + 2 \times g_{i-1} + 1) + (1-p_i) \times f_{i-1}\)

解释一下第二个方程,

长度有\(p_i\)的概率有\(x\)变为\(x+1\)

那么分数就会增加\((x+1)^2 - x^2\) 即\(2 \times x - 1\)

再加上有\(1-p[i]\)的概率保持原来的不变,所以就有了上面的方程

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
char ch;
int n;
double p,g[300010],f[300010];
int main()
{
scanf("%d",&n);
for(int i = 1; i <= n; i++)
{
cin>>ch;
if(ch == 'o') p = 1.0;
if(ch == 'x') p = 0.0;
if(ch == '?') p = 0.5;
g[i] = p * (g[i-1] + 1);//维护一下区间期望长度
f[i] = f[i-1] * (1-p) + (f[i-1] + 2 * g[i-1] + 1) * p;//维护期望得分
}
printf("%.4f\n",f[n]);
return 0;
}

T2

Let's Play Osu!

和上面那个题差不多。

转移时维护一个连续个数的期望和连续个数平方的期望就水过去了。

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
double p,f[100010],g[100010];
int main()
{
scanf("%d",&n);
for(int i = 1; i <= n; i++)
{
scanf("%lf",&p);
g[i] = p * (g[i-1] + 1);
f[i] = f[i-1] * (1-p) + (f[i-1] + 2 * g[i-1] + 1) * p;
}
printf("%.15lf",f[n]);
return 0;
}

T3

OSU!

这个题很上面的两个题还是有点区别的,但是多想一想也就明白了

当连续的X个个数由\(x\)变为\(x+1\)时

期望得分就会由\(x^3\)变为\((x+1)^3\)

也就是\(3 \times x^2 \times \ 3 \times x + 1\)

转移的时候维护三个数组,分别表示连续个数的期望,连续个数平方的期望,和期望得分。

剩下的随便水水就过了。

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
double p[100010],f[100010],g[100010],h[100010];
int main()
{
scanf("%d",&n);
for(int i = 1; i <= n; i++) scanf("%lf",&p[i]);
for(int i = 1; i <= n; i++)
{
h[i] = p[i] * (h[i-1] + 1);//连续个数的期望
g[i] = p[i] * (g[i-1] + 2 * h[i-1] + 1);//连续个数平方的期望
f[i] = f[i-1] * (1-p[i]) + p[i] * (f[i-1] + 3 * g[i-1] + 3 * h[i-1] + 1);//期望得分
}
printf("%.1lf",f[n]);
return 0;
}

期望题就是想出来与想不出来的区别。

想出来了代码也就可以实现出来了。

但是想不出来他就是 爆玲QAQ.

osu合集(期望dp)的更多相关文章

  1. luogu P1365 WJMZBMR打osu! / Easy(期望DP)

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

  2. 【洛谷1654/BZOJ4318】OSU!(期望DP)

    题目: 洛谷1654 分析: 本人数学菜得要命,这题看了一整天才看明白-- 先说说什么是"期望".不太严谨地说,若离散型随机变量(可以看作"事件")\(X\)取 ...

  3. [LeetCode] Best Time to Buy and Sell Stock 6道合集【DP】

    1. Best Time to Buy and Sell Stock 2. Best Time to Buy and Sell Stock II 3. Best Time to Buy and Sel ...

  4. 9.15 DP合集水表

    9.15 DP合集水表 显然难了一些啊. 凸多边形的三角剖分 瞄了一眼题解. 和蛤蛤的烦恼一样,裸的区间dp. 设f[i][j]表示i~j的点三角剖分最小代价. 显然\(f[i][i+1]=0,f[i ...

  5. 【BZOJ】4318: OSU!【期望DP】

    4318: OSU! Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 1473  Solved: 1174[Submit][Status][Discuss ...

  6. dp合集 广场铺砖问题&&硬木地板

    dp合集 广场铺砖问题&&硬木地板 很经典了吧... 前排:思想来自yali朱全民dalao的ppt百度文库免费下载 后排:STO朱全民OTZ 广场铺砖问题 有一个 W 行 H 列的广 ...

  7. 9.14 DP合集水表

    9.14 DP合集水表 关键子工程 在大型工程的施工前,我们把整个工程划分为若干个子工程,并把这些子工程编号为 1. 2. --. N:这样划分之后,子工程之间就会有一些依赖关系,即一些子工程必须在某 ...

  8. 【BZOJ4318】OSU! 期望DP

    [BZOJ4318]OSU! Description osu 是一款群众喜闻乐见的休闲软件.  我们可以把osu的规则简化与改编成以下的样子:  一共有n次操作,每次操作只有成功与失败之分,成功对应1 ...

  9. DP+贪心水题合集_C++

    本文含有原创题,涉及版权利益问题,严禁转载,违者追究法律责任 本次是最后一篇免费的考试题解,以后的考试题目以及题解将会以付费的方式阅读,题目质量可以拿本次作为参考 本来半个月前就已经搞得差不多了,然后 ...

随机推荐

  1. Gama Space 和 Linear Space 学习

    可以参考: 1.http://blog.csdn.net/ngrandmarch/article/details/46407017 2.http://blog.csdn.net/candycat199 ...

  2. 利用css3 transform实现一个时钟

    transform:rotate(1deg) <!DOCTYPE html> <html lang="en"> <head> <meta ...

  3. node中间件

    npm i body-parser post 请求主题中间件 const bodyParser = require('body-parser')   const bodyParser = requir ...

  4. 转载:Java的三种取整办法

    转载地址:https://blog.csdn.net/maple_fix/article/details/78656152 方法一:向上取整Math.ceil();举例:Math.ceil(11.4) ...

  5. 跨年夜问题:一句并不复杂的delete竟然在delete statement处cost飙升,在数据量上升的十万级就像进入了死循环,执行后久久没有结果

    笔者使用的环境: # 类别 版本 1 操作系统 Win10 2 数据库 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bi ...

  6. centos7安装jdk11

    我下载的网址是http://jdk.java.net/11/ 找安装包的事就说到这里了.我是因为公司用的jdk8,但是,我给个人研究东西的时候,目前定的版本是jdk11 .另外,现在基本全线转到了op ...

  7. IEDA使用Tomcat后控制台中文出现乱码

    如下图所示,Intellij IDEA显示中文为乱码, 根据Intellij IDEA控制台输出,Tomcat  Log出现乱码,因此可以将问题定位到Tomcat上,具体解决方法: 第一步:打开Tom ...

  8. 数据库漏洞扫描工具scuba

    1.先下载安装scuba 参考地址  https://www.52pojie.cn/thread-702605-1-1.html 百度网盘下载地址: 链接:https://pan.baidu.com/ ...

  9. oracle之序列

    序列 15.1 序列是生成唯一整数值的结构,它的典型用途是用于主键值. 结合真题演示伪列nextval, currval用法 CREATE SEQUENCE dept_deptnoINCREMENT ...

  10. oldboy edu python full stack s22 day16 模块 random time datetime os sys hashlib collections

    今日内容笔记和代码: https://github.com/libo-sober/LearnPython/tree/master/day13 昨日内容回顾 自定义模块 模块的两种执行方式 __name ...