BZOJ.4832.[Lydsy1704月赛]抵制克苏恩(期望DP)
\(f[s][i][j][k]\)表示还剩\(s\)次攻击,分别有\(i,j,k\)个血量为\(1,2,3\)的奴隶主时,期望受到伤害。
因为期望是倒推,所以这么表示从后往前求,注意\(a,b,c\)的更新顺序(全写反了QAQ)!顺推的话需要同时维护概率(概率就是伤害了)。
注意判断不能超过7。
命中每个的概率是\(i(j,k)/(i+j+k+1)\).
//1124kb	8ms
#include <cstdio>
double f[53][9][9][9];
void Init()
{
//	f[0][A][B][C]=0;
	for(int i=0; i<50; ++i)
		for(int a=0; a<=7; ++a)
			for(int b=0; b<=7-a; ++b)
				for(int c=0; c<=7-a-b; ++c)
				{
					double p=1.0/(a+b+c+1.0);
					f[i+1][a][b][c]+=/*1.0**/p*(f[i][a][b][c]+1.0);
					if(a) f[i+1][a][b][c]+=(double)a*p*f[i][a-1][b][c];
					if(b){
						if(a+b+c<7) f[i+1][a][b][c]+=(double)b*p*f[i][a+1][b-1][c+1];
						else f[i+1][a][b][c]+=(double)b*p*f[i][a+1][b-1][c];
					}
					if(c){
						if(a+b+c<7) f[i+1][a][b][c]+=(double)c*p*f[i][a][b+1][c];
						else f[i+1][a][b][c]+=(double)c*p*f[i][a][b+1][c-1];
					}
				}
}
int main()
{
	Init();
	int A,B,C,K,T; scanf("%d",&T);
	while(T--)
		scanf("%d%d%d%d",&K,&A,&B,&C),printf("%.2lf\n",f[K][A][B][C]);
	return 0;
}
												
											BZOJ.4832.[Lydsy1704月赛]抵制克苏恩(期望DP)的更多相关文章
- BZOJ4832[Lydsy1704月赛]抵制克苏恩——期望DP
		
题目描述 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q 同学会告诉你所有相关的细节.炉石传说是这样的一个游戏,每个玩家拥有一个 30 点血量的 ...
 - 【bzoj4832】[Lydsy1704月赛]抵制克苏恩 期望dp
		
Description 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q 同学会告诉你所有相关的细节.炉石传说是这样的一个游戏,每个玩家拥有一个 ...
 - BZOJ4832: [Lydsy1704月赛]抵制克苏恩(期望DP)
		
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 913 Solved: 363[Submit][Status][Discuss] Description ...
 - 【期望dp】bzoj4832: [Lydsy1704月赛]抵制克苏恩
		
这个题面怎么这么歧义…… Description 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q 同学会告诉你所有相关的细节.炉石传说是这样的一 ...
 - 【BZOJ 4832】 [Lydsy2017年4月月赛] 抵制克苏恩 期望概率dp
		
打记录的题打多了,忘了用开维记录信息了......我们用f[i][j][l][k]表示已经完成了i次攻击,随从3血剩j个,2血剩l个,1血剩k个,这样我们求出每个状态的概率,从而求出他们对答案的贡献并 ...
 - BZOJ4832: [Lydsy1704月赛]抵制克苏恩(记忆化&期望)
		
Description 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q 同学会告诉你所有相关的细节.炉石传说是这样的一个游戏,每个玩家拥有一个 ...
 - BZOJ4832: [Lydsy1704月赛]抵制克苏恩 (记忆化搜索 + 概率DP)
		
题意:模拟克苏恩打奴隶战对对方英雄所造成的伤害 题解:因为昨(今)天才写过记忆化搜索 所以这个就是送经验了 1A还冲了个榜 但是我惊奇的发现我数组明明就比数据范围开小了啊??? #include &l ...
 - [bzoj4832][Lydsy1704月赛]抵制克苏恩
		
题目大意:有一个英雄和若干个所从,克苏恩会攻击$K$次,每次回随机攻击对方的一个人,造成$1$的伤害.现在对方有一名克苏恩,你有一些随从.如果克苏恩攻击了你的一名随从,若这名随从不死且你的随从数量不到 ...
 - 【BZOJ 4832 】 4832: [Lydsy2017年4月月赛]抵制克苏恩 (期望DP)
		
4832: [Lydsy2017年4月月赛]抵制克苏恩 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 275 Solved: 87 Descripti ...
 
随机推荐
- JVM总结(一):概述--JVM运行时数据区
			
大三下,趁着寒假重温一遍JVM,准备在一个系列来总价一下学习JVM的整个过程.争取在接下来的一个星期内更新完这一个系列,然后回家过年. JVM运行时数据区 线程私有的数据区 程序计数器 虚拟机栈 本地 ...
 - nova-api源码分析(APP的创建)
			
目录结构如下: 上面介绍了nova-api发布所用到的一些lib库,有了上面的基础知识,再来分析nova-api的发布流程,就比较轻松了.nova-api可以提供多种api服务:ec2, osapi_ ...
 - Centos 7和 Centos 6开放查看端口 防火墙关闭打开
			
Centos 7 firewall 命令: 查看已经开放的端口: firewall-cmd --list-ports 开启端口 firewall-cmd --zone=public --add-por ...
 - JAVA-Servlet高级应用
			
会话只是指一段指定的时间间隔. 会话跟踪是维护用户状态(数据)的一种方式.它也被称为servlet中的会话管理. Http协议是一个无状态的,所以我们需要使用会话跟踪技术来维护用户状态. 每次用户请求 ...
 - js 隐藏代码生成工具
			
昨天写了篇<js 奇葩技巧之隐藏代码>,今天来写个工具方便大家生成吧.在昨天算法基础上优化了解码算法,采用立即函数运行.有两种模式可供选择: 1. eval 全局模式,比如你定义的 va ...
 - 总有一些实用javascript的元素被人遗忘在角落-slice
			
slice() 方法可从已有的数组中返回选定的元素. 好吧,我承认我竟然把它忘了! 这次我在回顾一下它 语法 arrayObject.slice(start,end) 数组.slice(起始,结束) ...
 - ASP.NET MVC3-Music Store中英文教程 [下载]
			
翻译原文档名: MVC Music Store版本: ASP.NET MVC3概述Mvc Music Store 是一个为WEB开发人员一步一步介绍和解释如何使用MVC和Visual Web开发的应用 ...
 - supperset (python 2.7.12 + mysql)记录
			
网上看到superset,比较感兴趣,虚机上搭一下,记录操作过程. 版本信息:CentOS 6.6 + python 2.7.12 + mysql 5.1.73 + setuptools 36.5.0 ...
 - SQL Server限制IP访问1433端口
			
1.用系统自带的防火墙,启用防火墙 2.点击[添加端口],名称填1433,端口号填1433 3.协议TCP,点[更改范围],选自定义列表,那个框里就填本机服务器的IP地址.
 - 百度编辑器ueditor 字符限制
			
百度编辑器ueditor 字符限制 默认只能输入10000个字符 修改 ueditor.config.js // ,wordCount:true //是否开启字数统计 // ,maximumWords ...