BZOJ4832: [Lydsy2017年4月月赛]抵制克苏恩
题目大意:
攻击k次,每次可攻击随从或英雄。
随从数不大于7个,且1滴血的a个,2滴b个,3滴c个。
攻击一次血-1,如果随从没死可以生成3滴血随从一个
题解:
概率/期望dp
f[i][j][p][q]表示攻击i次,一滴血的有j个,二滴血的有p个,三滴血的有q个。
转移就是枚举打在谁身上
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std; int t,a,b,c,k; double f[][][][]; int main(){
scanf("%d",&t);
f[i][j][p][q]//攻击了i次,一滴血的j个,二滴血的p个,三滴血的q个
while(t--){
scanf("%d%d%d%d",&k,&a,&b,&c);
memset(f,,sizeof(f));
f[][a][b][c]=.;
double ans=.;
for(int i=;i<k;i++){
for(int j=;j<=;j++){
for(int p=;p<=;p++){
for(int q=;q<=;q++){
if(j+p+q>)break;
f[i+][j][p][q]+=f[i][j][p][q]/(j+p+q+);
ans+=f[i][j][p][q]/(j+p+q+);
if(j+p+q==){
if(j)f[i+][j-][p][q]+=f[i][j][p][q]*j/(j+p+q+);
if(p)f[i+][j+][p-][q]+=f[i][j][p][q]*p/(j+p+q+);//攻击二滴血的,二滴血的-1,一滴血的+1
if(q)f[i+][j][p+][q-]+=f[i][j][p][q]*q/(j+p+q+);
}else{
if(j)f[i+][j-][p][q]+=f[i][j][p][q]*j/(j+p+q+);
if(p)f[i+][j+][p-][q+]+=f[i][j][p][q]*p/(j+p+q+);
if(q)f[i+][j][p+][q]+=f[i][j][p][q]*q/(j+p+q+);//攻击三滴血的-1,二滴血+1,三滴血+1
}
}
}
}
}
printf("%.2f\n",ans);
}
return ;
}
AC
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月月赛]抵制克苏恩 概率与期望
[BZOJ4832][Lydsy2017年4月月赛]抵制克苏恩 Description 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q同学会告诉 ...
- [补档][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 ...
- 【bzoj4832】[Lydsy2017年4月月赛]抵制克苏恩 概率期望dp
题目描述 你分别有a.b.c个血量为1.2.3的奴隶主,假设英雄血量无限,问:如果对面下出一个K点攻击力的克苏恩,你的英雄期望会受到到多少伤害. 输入 输入包含多局游戏. 第一行包含一个整数 T (T ...
- 【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 满足 现在给定一 ...
随机推荐
- c#中的控件01
1.常用控件: 只读文本:TextBlock.文本框:TextBox.按钮:Button 事件:鼠标移到按钮上的时候显示“大爷您来了”,离开 显示“大爷常来”,Click(点击).Loaded(控件加 ...
- C语言中 ln(以自然对数e为底) lg(以十为底) 以及logab(以a为底,b为真数)的相关知识
总所周知,我们在高中学过对数函数,记作y=logax.下面是百度百科关于对数函数的描述: 对数的定义:一般地,如果ax=N(a>0,且a≠1),那么数x叫做以a为底N的对数,记作x=logaN, ...
- 《React-Native系列》RN与native交互与数据传递
RN怎么与native交互的呢? 下面我们通过一个简单的Demo来实现:RN页面调起Native页面,Native页面选择电话本数据,将数据回传给RN展示. 首先是 Native侧 1.MainAct ...
- Spring_事务(1)
- 逆序对算法(reverse pair)
逆序对(reverse-pair) 思想和归并排序的思想一样,时间复杂度是O(nlgn). 就是在统计逆序对个数的表达式需要注意一下. 具体实现 #include <iostream> # ...
- Binder机制-简单用法(一)
Binder算是android里面比较难懂的部分了,但是非常重要,基本上,当我们深入到进程交互的阶段,Binder都是一个绕不开的槛,所以我也希望帮助大家更浅显地了解到这个知识点.笔者想通过3篇博文简 ...
- 基于开源库jsoncpp的json字符串解析
json(JavaScript Object Notation)是一种轻量级高效数据交换格式.相比于XML,其更加简洁,解析更加方便.在实习期间,我负责的程序模块,多次使用到json进行数据传输.由于 ...
- Hibernate -- 映射多对多双向关联关系
1. 示例代码: Student.java package cn.itcast.many2many; import java.util.HashSet; import java.util.Set; @ ...
- scala学习手记8 - 自适应的默认做法
scala有一些默认做法,会让代码更简洁.更易读写,下面列出了这样几个特性: 1. 支持脚本.scala支持脚本,因此无须将所有的代码都放到类里.如果脚本可以满足需求,就将代码放到一个脚本里,无须再创 ...
- Appium 自动化测试(4)-- 脚本开发:官方demo演示 android_contacts.py
前提:根据前面的环境搭建介绍,安装好相关环境 step1:启动android模拟器 step2:启动Appium服务端 step3:演示代码执行 这里执行的是官方的演示代码:通讯录管理app,安装打开 ...