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. kotlin 作用域函数 : let、run、with、apply、 also、takeIf、takeUnless

    1.官方文档 英文: https://kotlinlang.org/docs/reference/scope-functions.html 中文: https://www.kotlincn.net/d ...

  2. [U3D + GAD]Egametang开源服务器框架资源管理系统

    Egametang开源服务器框架资源管理系统详解 http://m.gad.qq.com/article/detail/36409 ET GitHub https://github.com/egame ...

  3. Visual Studio Installer闪退问题解决方法

    Visual Studio 2019安装推荐的方式是通过官方给的Installer进行的(2017也是同样方法),但是有时会出现在”即将完成…一切即将准备就绪“这个界面闪退的问题,导致软件的安装.卸载 ...

  4. slua中,绑定lua文件到Monobehavior的一种方法

    slua本身并不提供如何把一个lua文件绑定到一个预制中,就像一个普通的继承自monobehavior的自定义脚本那样,而tolua的框架却采用了拙劣的做法: public class LuaBeha ...

  5. 小程序开发-使用xpath解析网页html中的数据

    最新有个微信小程序的开发需求,需要从网页中提取一些元素信息,获取有效数据 1. 了解到微信小程序里面不能直接操作dom元素,所以我们需要使用一些其他的npm包 2. 经过查到各方面的文档,最新决定用x ...

  6. Oracle的timestamp字段更新实验 结论:只有逐条更新才能保证timestamp字段有差别,批量更新只会得到一致的时间,此操作无关时间精度.

    有这么一张表: create table hy_testtime( id number(6,0) not null primary key, name nvarchar2(20) not null, ...

  7. jdk1.8 时间工具类,可以满足基本操作

    时间工具类 public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd"; public static final S ...

  8. 2020年 .NET ORM 完整比较、助力选择

    .NET ORM 前言 为什么要写这篇文章? 希望针对 SEO 优化搜索引擎,让更多中国人知道并且使用.目前百度搜索 .NET ORM 全是 sqlsugar,我个人是无语的,每每一个人进群第一件事就 ...

  9. django.db.utils.InternalError: (1091, "Can't DROP 'cre_time'; check that column/key exists")

    在执行命令python manage.py migrate时报错:django.db.utils.InternalError: (1091, “Can’t DROP ‘cre_time’; check ...

  10. ios网络访问官方演示程序

    官方演示程序 AppDelegate 设置缓存 NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * ...