osu合集(期望dp)
T1
我们设\(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
和上面那个题差不多。
转移时维护一个连续个数的期望和连续个数平方的期望就水过去了。
代码
#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
这个题很上面的两个题还是有点区别的,但是多想一想也就明白了
当连续的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)的更多相关文章
- luogu P1365 WJMZBMR打osu! / Easy(期望DP)
题目背景 原 维护队列 参见P1903 题目描述 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有nnn次点击要做,成功了就是o,失败了就是 ...
- 【洛谷1654/BZOJ4318】OSU!(期望DP)
题目: 洛谷1654 分析: 本人数学菜得要命,这题看了一整天才看明白-- 先说说什么是"期望".不太严谨地说,若离散型随机变量(可以看作"事件")\(X\)取 ...
- [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 ...
- 9.15 DP合集水表
9.15 DP合集水表 显然难了一些啊. 凸多边形的三角剖分 瞄了一眼题解. 和蛤蛤的烦恼一样,裸的区间dp. 设f[i][j]表示i~j的点三角剖分最小代价. 显然\(f[i][i+1]=0,f[i ...
- 【BZOJ】4318: OSU!【期望DP】
4318: OSU! Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 1473 Solved: 1174[Submit][Status][Discuss ...
- dp合集 广场铺砖问题&&硬木地板
dp合集 广场铺砖问题&&硬木地板 很经典了吧... 前排:思想来自yali朱全民dalao的ppt百度文库免费下载 后排:STO朱全民OTZ 广场铺砖问题 有一个 W 行 H 列的广 ...
- 9.14 DP合集水表
9.14 DP合集水表 关键子工程 在大型工程的施工前,我们把整个工程划分为若干个子工程,并把这些子工程编号为 1. 2. --. N:这样划分之后,子工程之间就会有一些依赖关系,即一些子工程必须在某 ...
- 【BZOJ4318】OSU! 期望DP
[BZOJ4318]OSU! Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1 ...
- DP+贪心水题合集_C++
本文含有原创题,涉及版权利益问题,严禁转载,违者追究法律责任 本次是最后一篇免费的考试题解,以后的考试题目以及题解将会以付费的方式阅读,题目质量可以拿本次作为参考 本来半个月前就已经搞得差不多了,然后 ...
随机推荐
- wampserver64 apache2.4版本局域网互相访问总结
wampserver64 apache2.4版本局域网互相访问总结 背景:在我的电脑上给算法组开发了一个工具,需要在局域网环境下其他同事都能访问到,搞了一下午终于搞定,于是整理了这篇文档,给其他同行 ...
- 《52讲轻松搞定网络爬虫》读书笔记 - Session和Cookie
为什么要用Session和Cookie? 简单一句话,因为Session和Cookie可以记录用户状态信息 嘶..这到底啥意思呢? 背景一:动态网页的出现 什么是静态网页 含义:一个网页的内容是HTM ...
- [工作积累] shadowmap 改进
前面几篇阴影相关的: https://www.cnblogs.com/crazii/p/5443534.html 这个是在做bh3 MMD角色自阴影时的笔记 https://www.cnblogs.c ...
- js map数据结构
Map 对象保存键值对,并且能够记住键的原始插入顺序.任何值(对象或者原始值) 都可以作为一个键或一个值. map对象常用于保存键值对,它的键是任意数据类型,常用于建立数据的映射关系 和对象的区别: ...
- 小程序开发-微信小程序开发入门
分享一个微信小程序开发的基本流程,仅供参考. 第一步:注册微信小程序公众号,注册成功后,登录微信公众号管理后台,等待下一步操作. 第二步:进入微信小程序的后台后,下载微信内置的微信小程序开发者工具,以 ...
- 「查缺补漏」巩固你的Nginx知识体系
Nginx篇 基本介绍 Nginx是一款轻量级的 Web服务器 / 反向代理服务器 / 电子邮件(IMAP/POP3)代理服务器,主要的优点是: 支持高并发连接,尤其是静态界面,官方测试Nginx能够 ...
- 剑指 Offer 55 - II. 平衡二叉树
题目描述 输入一棵二叉树的根节点,判断该树是不是平衡二叉树.如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树. 示例1: 给定二叉树 [3,9,20,null,null,1 ...
- 如何解决SpringBoot工程中的错误:java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
出错原因:MySQL依赖及MySQL驱动包高于在使用的MySQL数据库版本. 比如,我本地数据库版本是:Server version: 5.2.3-falcon-alpha-community-nt ...
- URL 传参转义 (特殊符号转义)
问题: url参数中 存在+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,如何是好? 解决办法:将这些字符转化成服务器可以识别的字符,对应关系如下:URL ...
- [Leetcode]Sql系列3
题目1 产品数据表: Products +---------------+---------+ | Column Name | Type | +---------------+---------+ | ...