传送门

马上2点考初赛了,心里有点小紧张。

做道概率dp压压惊吧。

话说这题最开始想错了。

最开始的方法是考虑f[i][j]f[i][j]f[i][j]表示第iii轮出牌为jjj的概率。

然后用第iii轮111~j−1j-1j−1都不选的概率与前i−1i-1i−1轮都不选jjj的概率转移。

但这样是错的。

因为两个转移的量是有交集的。

因此需要换一种状态定义方式。

我们考虑f[i][j]f[i][j]f[i][j]表示前iii张出了jjj张的概率(注意是针对所有轮加起来)。

然后转移就很easyeasyeasy了。

代码:

#include<bits/stdc++.h>
#define db double
using namespace std;
int n,r,T;
db mul[250][250],f[250][250],d[250],p[250],psum[250],ans;
inline void init(){
	for(int i=1;i<=n;++i){
		mul[i][0]=1;
		for(int j=1;j<=r;++j)mul[i][j]=mul[i][j-1]*(1-p[i]);
	}
}
int main(){
	scanf("%d",&T);
	while(T--){
		scanf("%d%d",&n,&r),ans=0;
		for(int i=1;i<=n;++i)scanf("%lf%lf",&p[i],&d[i]);
		memset(f,0,sizeof(f)),memset(psum,0,sizeof(psum)),init();
		f[1][0]=mul[1][r],f[1][1]=psum[1]=1-f[1][0];
		for(int i=2;i<=n;++i){
			for(int j=0;j<=r;++j){
				psum[i]+=f[i-1][j]*(1-mul[i][r-j]),f[i][j]+=f[i-1][j]*mul[i][r-j];
				if(j)f[i][j]+=f[i-1][j-1]*(1-mul[i][r-j+1]);
			}
		}
		for(int i=1;i<=n;++i)ans+=psum[i]*d[i];
		printf("%.10lf\n",ans);
	}
	return 0;
}

2018.10.13 bzoj4008: [HNOI2015]亚瑟王(概率dp)的更多相关文章

  1. 【bzoj4008】[HNOI2015]亚瑟王 概率dp

    题目描述 $n$ 张牌,$r$ 轮游戏,每轮从左向右操作,遇到第 $i$ 张牌有 $p_i$ 的概率选中,选中会产生 $d_i$ 的贡献,丢弃掉该牌并结束这一轮,否则继续下一张.问最终的期望贡献. 输 ...

  2. BZOJ4008: [HNOI2015]亚瑟王(期望dp)

    Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 1952  Solved: 1159[Submit][Status] ...

  3. P3239 [HNOI2015]亚瑟王——概率DP

    题面:亚瑟王 最近考试考期望很自闭啊,没做过这种类型的题,只能现在练一练: 所谓期望,就是状态乘上自己的概率:对于这道题来说,我们要求的是每张牌的伤害乘上打出的概率的和: 当然不是直接乘,因为给的是每 ...

  4. 概率DP——BZOJ4008 [HNOI2015]亚瑟王

    [HNOI2015]亚瑟王 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑.他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 ...

  5. 【BZOJ-4008】亚瑟王 概率与期望 + DP

    4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 832  Solved: 5 ...

  6. BZOJ4008:[HNOI2015]亚瑟王(DP,概率期望)

    Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟王是一个 ...

  7. Bzoj4008 [HNOI2015]亚瑟王

    Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special Judge Submit: 1009  Solved: 605[Submit][Status] ...

  8. 【文文殿下】[BZOJ4008] [HNOI2015] 亚瑟王

    题解 这是一个经典的概率DP模型 设\(f_{i,j}\)表示考虑到前\(i\)张牌,有\(j\)轮没打出牌的可能性,那么显然\(f_{0,r} = 1\). 考虑第\(i+1\)张牌,他可能在剩下的 ...

  9. P3239 [HNOI2015]亚瑟王 期望dp

    这个题一看就是期望dp,但是我有个问题,一个事件的期望等于他所有事件可能行乘权值的和吗...为什么我有天考试的时候就不对呢...求大佬解释一下. 至于这道题,f[i][j]代表前i个有j个发动技能,这 ...

随机推荐

  1. 机器学习入门-Knn算法

    knn算法不需要进行训练, 耗时,适用于多标签分类情况 1. 将输入的单个测试数据与每一个训练数据依据特征做一个欧式距离. 2. 将求得的欧式距离进行降序排序,取前n_个 3. 计算这前n_个的y值的 ...

  2. 可视化库-seaborn-回归分析绘图(第五天)

    1. sns.regplot() 和 sns.lmplot() 绘制回归曲线 import numpy as np import pandas as pd from scipy import stat ...

  3. rssh RSA(非对称密钥)

    rssh ,非对称密钥,分为密钥和公钥 ,密钥在对面机器,需要进入的文件中,公钥是放在本地机器上 import paramiko private_key = paramiko.RSAKey.from_ ...

  4. WebConfig配置讲解

    http://www.cnblogs.com/cyq1162/archive/2006/11/16/562690.html sqlserver配置数据库连接字符串时需分2种情况 windows 和 s ...

  5. focusin 事件| focusout事件

    focusin 定义和用法 当元素(或在其内的任意元素)获得焦点时发生 focusin 事件. 当在元素或在其内的任意元素上发生 focus 事件时,focusin() 方法添加要运行的函数. 与 f ...

  6. hbase orm中间层hbasedao

    博客园发布文章的体验太差,Markdown的支持巨烂无比,尝试了富文本编辑,太麻烦,遂作罢.想看的跳转到这两个连接吧 树莓派的奇幻漂流 github

  7. python引入模块时import与from ... import的区别(转)

    import datetime是引入整个datetime包,如果使用datetime包中的datetime类,需要加上模块名的限定. 1 import datetime 2 3 print datet ...

  8. swagger ui

    You can pull a pre-built docker image of the swagger-ui directly from Dockerhub: docker pull swagger ...

  9. vs2010+Aspx进行sharepoint2010工作流开发(3) 资料整理

    http://www.cnblogs.com/janet/archive/2010/04/24/1719315.html http://www.cnblogs.com/poissonnotes/arc ...

  10. Marriage Match II(二分+并查集+最大流,好题)

    Marriage Match II http://acm.hdu.edu.cn/showproblem.php?pid=3081 Time Limit: 2000/1000 MS (Java/Othe ...