打记录的题打多了,忘了用开维记录信息了......我们用f[i][j][l][k]表示已经完成了i次攻击,随从3血剩j个,2血剩l个,1血剩k个,这样我们求出每个状态的概率,从而求出他们对答案的贡献并加和,一开始我用的期望忘了转移的时候不能用1而要用概率......

#include <cstdio>
#include <cstring>
#define r register
using namespace std;
typedef long double LD;
inline int read()
{r int sum=0;r char ch=getchar();while(ch<'0'||ch>'9')ch=getchar();while(ch>='0'&&ch<='9'){sum=(sum<<1)+(sum<<3)+ch-'0';ch=getchar();}return sum;
}
LD f[55][10][10][10];
int main()
{r int T=read();while(T--){for(r int i=0;i<55;++i)for(r int j=0;j<10;++j)for(r int l=0;l<10;++l)for(r int k=0;k<10;++k)f[i][j][l][k]=0.0;r int K=read(),A=read(),B=read(),C=read();f[0][C][B][A]=1.0;LD ans=0.0;for(r int i=0;i<K;++i)for(r int j=0;j<=7;++j)for(r int l=0;l+j<=7;++l)for(r int k=0;k+j+l<=7;++k){f[i+1][j][l][k]+=f[i][j][l][k]/(1+j+l+k);ans+=f[i][j][l][k]/(1+j+l+k);if(k)f[i+1][j][l][k-1]+=f[i][j][l][k]*k/(1+j+l+k);if(j+l+k<7){if(l)f[i+1][j+1][l-1][k+1]+=f[i][j][l][k]*l/(1+j+l+k);if(j)f[i+1][j][l+1][k]+=f[i][j][l][k]*j/(1+j+l+k);}else{if(l)f[i+1][j][l-1][k+1]+=f[i][j][l][k]*l/(1+j+l+k);if(j)f[i+1][j-1][l+1][k]+=f[i][j][l][k]*j/(1+j+l+k);}}double Ans=ans;printf("%.2lf\n",Ans);}
}

转载于:https://www.cnblogs.com/TSHugh/p/7260537.html

【BZOJ 4832】 [Lydsy2017年4月月赛] 抵制克苏恩 期望概率dp相关推荐

  1. Lydsy2017年4月月赛 抵制克苏恩

    Description 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩 炉石传说,不必担心,小Q同学会告诉你所有相关的细节.炉石传说是这样的一个游戏, 每个玩家拥有一个 ...

  2. BZOJ4832: [Lydsy2017年4月月赛]抵制克苏恩

    传送门 题目大意: 攻击k次,每次可攻击随从或英雄. 随从数不大于7个,且1滴血的a个,2滴b个,3滴c个. 攻击一次血-1,如果随从没死可以生成3滴血随从一个 题解: 概率/期望dp f[i][j] ...

  3. BZOJ 4884 [Lydsy2017年5月月赛]太空猫(单调DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4884 [题目大意] 太空猫(SpaceCat)是一款画面精致.玩法有趣的休闲游戏, 你 ...

  4. BZOJ.4832.[Lydsy1704月赛]抵制克苏恩(期望DP)

    题目链接 \(f[s][i][j][k]\)表示还剩\(s\)次攻击,分别有\(i,j,k\)个血量为\(1,2,3\)的奴隶主时,期望受到伤害. 因为期望是倒推,所以这么表示从后往前求,注意\(a, ...

  5. bzoj 4886: [Lydsy2017年5月月赛]叠塔游戏 并查集

    题意 小Q正在玩一个叠塔的游戏,游戏的目标是叠出尽可能高的塔.在游戏中,一共有n张矩形卡片,其中第i张卡片的长度为a_i,宽度为b_i.小Q需要把所有卡片按一定顺序叠成一座塔,要求对于任意一个矩形,它 ...

  6. BZOJ 4883 [Lydsy2017年5月月赛]棋盘上的守卫(最小生成环套树森林)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4883 [题目大意] 在一个n*m的棋盘上要放置若干个守卫. 对于n行来说,每行必须恰好 ...

  7. 【bzoj4832】[Lydsy1704月赛]抵制克苏恩 期望dp

    Description 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q 同学会告诉你所有相关的细节.炉石传说是这样的一个游戏,每个玩家拥有一个 ...

  8. [BZOJ]4832 抵制克苏恩 期望dp

    4832: [Lydsy2017年4月月赛]抵制克苏恩 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 488  Solved: 187 [Submit ...

  9. 【bzoj4881】[Lydsy2017年5月月赛]线段游戏 树状数组+STL-set

    题目描述 quailty和tangjz正在玩一个关于线段的游戏.在平面上有n条线段,编号依次为1到n.其中第i条线段的两端点坐标分别为(0,i)和(1,p_i),其中p_1,p_2,...,p_n构成 ...

最新文章

  1. CS5中动作和批处理
  2. tiny4412学习之u-boot启动过程
  3. 惊呆了!两人发现抵用券漏洞,疯狂“薅羊毛”获利 770 余万
  4. kubernetes之kubedns部署
  5. 阻塞队列实现日志接口开发
  6. Makefile 学习 2 - 基于若干 Blog 的汇总
  7. 2.5e2.0是合法的c语言常量,二级考试C语言程序设计.ppt
  8. order by居然不能直接在union子句中使用
  9. Android上传图片的两种方式
  10. php替换图片_php实现图片上传并进行替换操作
  11. 电脑屏幕变黄如何调整_办公室照明设计如何避免踩坑,四个要点必须注意
  12. Linux下source命令作用
  13. SQL SERVER 2005 批量收缩数据库
  14. 深度卷积神经网络(AlexNet)
  15. (源代码)用Python制作疫情的实时数据地图(PS:全国以及每个省)
  16. FDA“长寿药”NMN被爆几毛一克,富豪被收天价智商税?
  17. 小牛叔讲Python第6章:for循环-能计数的循环1234567
  18. 使用较广泛的安全测试工具有哪些?
  19. 工程制图 ( 制图的基本知识和基本技能)
  20. OpenCV 文字绘制cv::putText详解

热门文章

  1. android studio github 项目导入问题
  2. 获取图片像素颜色,转换为CSS3 box-shadow显示
  3. Eval()特殊绑定
  4. 存储过程 psal emp.sal%type是什么意思
  5. JVM加载class文件的原理机制
  6. Java程序运行的内存分配
  7. TCP 的那些事儿(下)
  8. 微软企业库4.1学习笔记(三)企业库迁移和并行使用,以及企业库的扩展
  9. sharepoint 不同路径下 COOKIE找不到
  10. 《你必须知道的.NET》,蓄势待发;博客园开发者征途,又添新作