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 ...
随机推荐
- SQL记录-PLSQL函数
PL/SQL函数 PL/SQL函数与过程相同,不同之处在于函数有一个返回值.因此,前面的章节中的所有讨论都适用于函数. 创建函数 建立一个独立函数可以使用CREATE FUNCTION语句创建.CRE ...
- Google Email 帐户泄露
最初爆出来的网站是:https://forum.btcsec.com/index.php?/topic/9426-gmail-meniai-parol/,是一个俄罗斯论坛,然后..就流传开来了... ...
- 关于Spring mvc注解中的定时任务的配置
关于spring mvc注解定时任务配置 简单的记载:避免自己忘记,不是很确定我理解的是否正确.有错误地方望请大家指出. 1,定时方法执行配置: (1)在applicationContext.xml中 ...
- xmlhttprequest upload
html5 带进度上传 function fileSelected() { var file = document.getElementById('fileToUpload').files[0]; i ...
- python中的__call__
如果python中的一个类定义了 __call__ 方法,那么这个类它的实例就可以作为函数调用,也就是实现了 () 运算符,即可调用对象协议 下面是一个简单的例子: class TmpTest: de ...
- 第5月第16天 php crud CodeIgniter CI_DB_active_record
1.C.R.U.D. Generator for CodeIgniter https://github.com/antonioyee/crud-generator/tree/9e5e48e773a52 ...
- MySQL主从复制部署
前言 MySQL的主从复制是基于二进制日志机制的,需开启二进制日志功能.在具体的配置过程中,需注意主服务器与从服务器均配置唯一ID编号,且从服务器必须设置主服务器的主机名.日志文件名.文件位置等参数. ...
- 记webpack下进行普通模块化开发基础配置(自动打包生成html、多入口多页面)
写本记时(2018-06-25)的各版本 "webpack": "^4.6.0" //可直接使用4x以上的开发模式,刷新很快 "webpack-de ...
- 【转】SpringMVC Controller 介绍
转自:原文url 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ...
- linux压缩日志并删除原始文件
下面的脚本可以压缩日志并删除原始文件 #!/bin/bash yesterday=`date -d '1days ago' +%Y_%m_%d` cd $ find . -name "*$y ...