【BZOJ4832】[Lydsy2017年4月月赛]抵制克苏恩 概率与期望
【BZOJ4832】[Lydsy2017年4月月赛]抵制克苏恩
Description
Input
Output
对于每局游戏,输出一个数字表示总伤害的期望值,保留两位小数。
Sample Input
1 1 1 1
Sample Output
题解:用f[i][a][b][c]表示第i次攻击,场上有a个1血,b个2血,c个3血,收到的期望伤害,p[i][a][b][c]表示这个状态发生的概率,然后DP即可。
也可以不记录f数组,直接用p数组更新ans。
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int T,K,A,B,C;
long double ans;
long double f[52][8][8][8],p[52][8][8][8];
void work()
{
scanf("%d%d%d%d",&K,&A,&B,&C);
memset(f,0,sizeof(f)),memset(p,0,sizeof(p));
int i,a,b,c,e;
double d,F,P;
p[0][A][B][C]=1;
for(i=0;i<K;i++) for(a=0;a<=7;a++) for(b=0;a+b<=7;b++) for(c=0;a+b+c<=7;c++)
{
d=1.0/(a+b+c+1),e=!(a+b+c==7),F=f[i][a][b][c],P=p[i][a][b][c];
if(a) f[i+1][a-1][b][c]+=F*a*d,p[i+1][a-1][b][c]+=P*a*d;
if(b) f[i+1][a+1][b-1][c+e]+=F*b*d,p[i+1][a+1][b-1][c+e]+=P*b*d;
if(c) f[i+1][a][b+1][c-1+e]+=F*c*d,p[i+1][a][b+1][c-1+e]+=P*c*d;
f[i+1][a][b][c]+=(F+P)*d,p[i+1][a][b][c]+=P*d;
}
ans=0;
for(a=0;a<=7;a++) for(b=0;b<=7;b++) for(c=0;c<=7;c++) ans+=f[K][a][b][c];
printf("%.2lf\n",(double)ans);
}
int main()
{
scanf("%d",&T);
while(T--) work();
return 0;
}
【BZOJ4832】[Lydsy2017年4月月赛]抵制克苏恩 概率与期望的更多相关文章
- [Bzoj4832][Lydsy2017年4月月赛]抵制克苏恩 (期望dp)
4832: [Lydsy2017年4月月赛]抵制克苏恩 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 673 Solved: 261[Submit][ ...
- 【bzoj4832】[Lydsy2017年4月月赛]抵制克苏恩 概率期望dp
题目描述 你分别有a.b.c个血量为1.2.3的奴隶主,假设英雄血量无限,问:如果对面下出一个K点攻击力的克苏恩,你的英雄期望会受到到多少伤害. 输入 输入包含多局游戏. 第一行包含一个整数 T (T ...
- BZOJ4832: [Lydsy2017年4月月赛]抵制克苏恩
传送门 题目大意: 攻击k次,每次可攻击随从或英雄. 随从数不大于7个,且1滴血的a个,2滴b个,3滴c个. 攻击一次血-1,如果随从没死可以生成3滴血随从一个 题解: 概率/期望dp f[i][j] ...
- [补档][Lydsy2017年4月月赛]抵制克苏恩
[Lydsy2017年4月月赛]抵制克苏恩 题目 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平. 如果你不玩炉石传说,不必担心,小Q同学会告诉你所有相关的细节.炉石传说是这样的一 ...
- 【BZOJ 4832 】 4832: [Lydsy2017年4月月赛]抵制克苏恩 (期望DP)
4832: [Lydsy2017年4月月赛]抵制克苏恩 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 275 Solved: 87 Descripti ...
- 【BZOJ 4832】 [Lydsy2017年4月月赛] 抵制克苏恩 期望概率dp
打记录的题打多了,忘了用开维记录信息了......我们用f[i][j][l][k]表示已经完成了i次攻击,随从3血剩j个,2血剩l个,1血剩k个,这样我们求出每个状态的概率,从而求出他们对答案的贡献并 ...
- [Lydsy2017年4月月赛]抵制克苏恩题解
考试的时候以为就是简单的概率期望题,考完后知道是简单的概率期望DP题,完美爆零. 这道题数据范围很小,很容易让人想到状压,不过貌似没什么可压的.那么只能说明这道题复杂度很高了,状态数组f[o][i][ ...
- [BZOJ 4832][lydsy 4月赛] 抵制克苏恩
题面贴一发 [Lydsy2017年4月月赛]抵制克苏恩 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 443 Solved: 164[Submit][ ...
- bzoj 4836: [Lydsy2017年4月月赛]二元运算 -- 分治+FFT
4836: [Lydsy2017年4月月赛]二元运算 Time Limit: 8 Sec Memory Limit: 128 MB Description 定义二元运算 opt 满足 现在给定一 ...
随机推荐
- 连载:面向对象葵花宝典:思想、技巧与实践(35) - NOP原则
NOP.No Overdesign Priciple.不要过度设计原则. 这应该是你第一次看到这个原则.而且你也不用上网查了,由于这个不是大师们创造的,而是我创造的:) 之所以提出这个原则,是我自己吃 ...
- Nginx+Windows负载均衡(转载)
一.下载Nginxhttp://nginx.org/download/nginx-1.0.8.zip解压到C:\nginx目录下二.在两台服务器上分别建一个网站:S1:192.168.16.35:80 ...
- java中GET方式提交和POST方式提交
java中GET方式提交的示例: /** * 获取关注列表; * @return */ @SuppressWarnings("unchecked") public static A ...
- Android 依赖注入: Dagger 2 实例解说(一)
本文原创,转载请注明出处:http://blog.csdn.net/zjbpku [Duplicated] link to Dagger on Android - Dagger2具体解释 关于D ...
- 【Android】14.2 外部文件存储和读取
分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 1.基本概念 内部存储的私有可用存储空间一般都不会很大,对于容量比较大的文件,例如视频等,应该将其存储在外部存储设 ...
- dbrd 8.4.6 源代码编译安装
---------------------------- 0.系统环境 ---------------------------- db01 192.168.50.10 /dev/sdb1 主节点 db ...
- MySQL编码问题集合
1.以root用户的身份登录,查看编码设置 mysql> SHOW VARIABLES LIKE 'character%'; +--------------------------+------ ...
- python学习笔记(6)--有道翻译爬虫
说明: 1. 导入三个模块,urllib.request.urlopen用来打开url链接,urllib.parse的urlencode方法将浏览器network里的data对象转为urlopen的第 ...
- Codeforces 482C Game with Strings(dp+概率)
题目链接:Codeforces 482C Game with Strings 题目大意:给定N个字符串,如今从中选定一个字符串为答案串,你不知道答案串是哪个.可是能够通过询问来确定, 每次询问一个位置 ...
- EF调用存储过程、函数
一.ef4.1 codeFirst 修改表结构 增加字段等 EF code first需要重新生成库导致数据丢失的问题 说这个问题前 首先先说下 我使用ef4.1 codefirst的目的. 是因为可 ...