[HNOI2015]亚瑟王(概率dp)
题面太长了就不复制了,传送门
一道做了还是很懵逼的题目,感觉以后碰到类似的还是不会,果然HNOI题目很皮。
题解传送
补充一下吧。//感觉他的博客已经写得很好了......Orz 需要的可以两边一起看
1.期望的线性性质 \(E(x+y)=E(x)+E(y)\) //\(x,y\)是两个不同的事件
\(E(kx)=kE(x)\) //(k为常数)
2.单独考虑每张牌的概率的时候,影响其的只有他前面选了几张。
例如在前\(j\)轮里,在牌\(i\)(假设\(i>j\))前面有\(k\)张牌发动了(不包括\(i\))。
若\(k<j\),意味着还有牌在包括\(i\)的后面发动了,这时是不是我们考虑了\(i\)是否发动,所以会有概率做贡献
若\(k==j\),意味着j轮内发动的牌都在\(i\)前面,依题意,我们不会考虑\(i\)是否发动,所以不会有概率做贡献
大家尽量yy一下,语言表达能力有限
3.补充一下这里吧,自己看的时候感觉写的不是很清楚:
\(F[i][j]\)表示在所有\(r\)轮中,前\(i\)张卡一共出了\(j\)张的概率,那么就可以用\(O(n)\)的时间算出\(Fp[i](i>0)\)
枚举前\(i-1\)轮选了\(j\)张牌,那么有\(j\)轮不会考虑到第\(i\)张牌,也就是有\(r-j\)轮会考虑到第\(i\)张牌
//根据状态的定义,我们选了\(j\)张牌是不是意味着我们已经进行了\(j\)轮了,这时\(F[i-1][j]\)就意味着
在前\(i-1\)张牌中我们有\(j\)张发动了,根据题目条件,一旦发动回合结束,即前\(j\)轮根本就没机会来到第\(i\)张牌,所以剩下的\(r-j\)轮就会考虑到\(i\),会对\(Fp[i]\)做出贡献。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
double p[221],f[221][133],all[221];
int d[221];
int main()
{
int t,n,r;
scanf("%d",&t);
while(t--)
{
memset(f,0,sizeof(f));
memset(all,0,sizeof(all));
scanf("%d%d",&n,&r);
for(int i=1;i<=n;i++)
{
scanf("%lf%d",&p[i],&d[i]);
}
f[0][0]=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=r;j++)
{
f[i][j]+=f[i-1][j]*pow(1-p[i],r-j);
if(j>0) f[i][j]+=f[i-1][j-1]*(1-pow(1-p[i],r-j+1));
all[i]+=f[i-1][j]*(1-pow(1-p[i],r-j));
}
}
double ans=0;
for(int i=1;i<=n;i++)
{
ans+=all[i]*d[i];
}
printf("%.10lf\n",ans);
}
}
[HNOI2015]亚瑟王(概率dp)的更多相关文章
- P3239 [HNOI2015]亚瑟王——概率DP
题面:亚瑟王 最近考试考期望很自闭啊,没做过这种类型的题,只能现在练一练: 所谓期望,就是状态乘上自己的概率:对于这道题来说,我们要求的是每张牌的伤害乘上打出的概率的和: 当然不是直接乘,因为给的是每 ...
- 【bzoj4008】[HNOI2015]亚瑟王 概率dp
题目描述 $n$ 张牌,$r$ 轮游戏,每轮从左向右操作,遇到第 $i$ 张牌有 $p_i$ 的概率选中,选中会产生 $d_i$ 的贡献,丢弃掉该牌并结束这一轮,否则继续下一张.问最终的期望贡献. 输 ...
- P3239 [HNOI2015]亚瑟王 期望dp
这个题一看就是期望dp,但是我有个问题,一个事件的期望等于他所有事件可能行乘权值的和吗...为什么我有天考试的时候就不对呢...求大佬解释一下. 至于这道题,f[i][j]代表前i个有j个发动技能,这 ...
- P3239 [HNOI2015]亚瑟王 期望 dp
LINK:亚瑟王 Saber!Excalibur! 比较难的期望dp. 可以发现如果暴力枚举所有的局面复杂度很高 . 转换的思路则是 期望的线性性. 求出每张牌的期望累加即可. 考虑每张牌的期望=这张 ...
- BZOJ4008: [HNOI2015]亚瑟王(期望dp)
Time Limit: 20 Sec Memory Limit: 512 MBSec Special JudgeSubmit: 1952 Solved: 1159[Submit][Status] ...
- luoguP3239 [HNOI2015]亚瑟王 概率期望DP
当初怎么想的来着.....又忘了...... 首先,总期望 = 每张卡片的期望之和 求期望,只要我们求出每张卡片被用掉的概率即可 如果直接上状态$f[i][j]$表示在第$i$轮中,第$j$张牌发动的 ...
- 【BZOJ4008】【HNOI2015】亚瑟王 概率DP
链接: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...
- 洛谷 P3239 [HNOI2015]亚瑟王(期望dp)
题面 luogu 题解 一道复杂的期望\(dp\) 思路来源:__stdcall 容易想到,只要把每张牌打出的概率算出来就可以求出\(ans\) 设\(fp[i]\)表示把第\(i\)张牌打出来的概率 ...
- BZOJ [HNOI2015]亚瑟王 ——期望DP
发现每张卡牌最后起到作用只和是否打出去了有关. 而且每张牌打出去的概率和之前的牌打出去的情况有关. 所以我们按照牌的顺序进行DP. 然后记录$i$张牌中打出$j$张的概率,然后顺便统计答案. 直接对系 ...
- [HNOI2015]亚瑟王(期望+DP)
题解 利用期望的线性性,可以把问题转化为求每一个卡牌造成期望的期望值. 然后我们就需要知道每一个卡牌发动技能的概率. 因为当某一张卡牌发动技能时这一轮会结束,这就很难直接计算了. 我们使用DP 设dp ...
随机推荐
- Python3-unittest测试框架之DDT数据驱动
unittest测试框架之DDT数据驱动 ddt的使用 DDT数据驱动 DDT:Data Driver Test(数据驱动测试) 数据驱动思想:数据和用例进行分离,通过外部数据去生成测试用例 安装 p ...
- UVa 10054 : The Necklace 【欧拉回路】
题目链接 题目大意:我的妹妹有一串由各种颜色组成的项链. 项链中两个连续珠子的接头处共享同一个颜色. 如上图, 第一个珠子是green+red, 那么接这个珠子的必须以red开头,如图的red+whi ...
- 迁移数据时 timestamp类型字段报错: 1067 - Invalid default value for 'login_time'
MySQL数据库升级 8.0.13,原版本5.5:执行导出来的SQL文件时报错 1067 - Invalid default value for 'login_time' 原因:MySQL 5.6以后 ...
- Intent.java分析
代码位于frameworks/base/core/java/anroid/Content/Intent.java Intent是对要进行操作的一种抽象描述.用action抽象操作,用data(andr ...
- C#中命名空间,C#程序中的一种代码组织形式,主要用来标识类的可以范围,引用using 命名空间
C# C#中命名空间,C#程序中的一种代码组织形式,主要用来标识类的可以范围 use system; use system.collect.core; namespace sss{ } using 命 ...
- php strripos()函数 语法
php strripos()函数 语法 作用:寻找某字符串中某字符最后出现的位置,不区分大小写.大理石平台 语法:strripos(string,find,start) 参数: 参数 描述 strin ...
- mui初级入门教程(三)— html5+ XMLHttpRequest 与mui ajax用法详解
文章来源:小青年原创发布时间:2016-05-29关键词:mui,html5+,XMLHttpRequest,ajax,懒加载转载需标注本文原始地址: http://zhaomenghuan.gith ...
- qinwoyige
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...
- Mybatis入门之MyBatis基础
一.MyBatis概述 1.ORM模型简介 ORM:对象关系映射(Object Relation Mapping) 1)传统JDBC程序的设计缺陷(实际项目不使用) a.大量配置信息硬编码 b.大量的 ...
- python web自动化测试框架搭建(功能&接口)——接口测试模块
Python接口测试采用python读取excel的方法,通过requests库发送请求和接收响应.模块有: Data:用于存放excel用例的,用例格式: iutil: 接口公共方法,数据引擎.ht ...