期望专题 三国杀之 黄盖
来源:互联网 发布:淘宝助理如何导入宝贝 编辑:程序博客网 时间:2024/04/28 04:02
【问题描述】 xpp每天研究天文学研究哲学,对于人生又有一些我们完全无法理解的思考。
在某天无聊学术之后,xpp打开了http://web.sanguosha.com,准备用他心爱的黄盖虐人。进入了八人身份局,作为一位主公,xpp果断选了黄盖,用黄盖挑7人。 xpp为什么喜欢黄盖这个武将呢?因为苦肉是个很牛逼的技能。 苦肉——出牌阶段,你可以失去一点体力,然后摸两张牌。每回合中,你可以多次使用苦肉。 可见苦肉这个技能如果用得好那么是可以秒全场的。于是xpp把7个人全部轻松干掉。 虽然xpp的苦肉永远能秒全场,但是他想到了这样一个问题:某种特定情况下,黄盖期望杀人数有多少。 为了简化问题,xpp规定:牌堆里的牌分为4种,一种为能回复一点体力的(例如桃),有a张;一种能对任意一名角色造成一点伤害的(例如杀,决斗),有b张;一种能对所有角色造成一点伤害的(例如万箭齐发,南蛮入侵),),有c张;一种不能用出去的(例如闪),有d张。并且苦肉一次(即失去一点体力)只能摸一张牌,杀死一个人可以摸3张牌。黄盖不能在体力只有1的时候苦肉,黄盖初始无手牌。 场上总共有n名角色,每名角色m点血量,一名角色的血量到达0即视为被杀死。黄盖有s点血量。黄盖造成的伤害都不会被抵挡。 xpp智商过于强大,不屑于想此等低端问题,然后你就要把这道题做出来。 【输入】 输入文件名为huanggai.in。共一行,每行七个整数,分别为a,b,c,d,n,m,s。 【输出】 输出文件名为huanggai.out。 输出共一行,包含一个实数,表示所求的期望值。
【输入输出样例】
huanggai.in
huanggai.out
1 1 0 1 2 1 2
0.5000000000
在某天无聊学术之后,xpp打开了http://web.sanguosha.com,准备用他心爱的黄盖虐人。进入了八人身份局,作为一位主公,xpp果断选了黄盖,用黄盖挑7人。 xpp为什么喜欢黄盖这个武将呢?因为苦肉是个很牛逼的技能。 苦肉——出牌阶段,你可以失去一点体力,然后摸两张牌。每回合中,你可以多次使用苦肉。 可见苦肉这个技能如果用得好那么是可以秒全场的。于是xpp把7个人全部轻松干掉。 虽然xpp的苦肉永远能秒全场,但是他想到了这样一个问题:某种特定情况下,黄盖期望杀人数有多少。 为了简化问题,xpp规定:牌堆里的牌分为4种,一种为能回复一点体力的(例如桃),有a张;一种能对任意一名角色造成一点伤害的(例如杀,决斗),有b张;一种能对所有角色造成一点伤害的(例如万箭齐发,南蛮入侵),),有c张;一种不能用出去的(例如闪),有d张。并且苦肉一次(即失去一点体力)只能摸一张牌,杀死一个人可以摸3张牌。黄盖不能在体力只有1的时候苦肉,黄盖初始无手牌。 场上总共有n名角色,每名角色m点血量,一名角色的血量到达0即视为被杀死。黄盖有s点血量。黄盖造成的伤害都不会被抵挡。 xpp智商过于强大,不屑于想此等低端问题,然后你就要把这道题做出来。 【输入】 输入文件名为huanggai.in。共一行,每行七个整数,分别为a,b,c,d,n,m,s。 【输出】 输出文件名为huanggai.out。 输出共一行,包含一个实数,表示所求的期望值。
【输入输出样例】
huanggai.in
huanggai.out
1 1 0 1 2 1 2
0.5000000000
【数据范围】 对于10%的数据,a=0。 对于另外10%的数据,b=0。 对于另外10%的数据,d=0。 对于上述30%的数据,n≤2。 对于60%的数据,c=0。 对于100%的数据,0≤a≤100,0≤b,d≤40,1≤n≤20,0≤c<m≤20,1≤s≤40。 你的答案与标准答案相差小于1e-6时被认为是正确的。
#include<cstdio>#define eps 1e-10int a,b,c,d,n,m,s,sum;double f[41][21][41][21][22],ans;int main(){ freopen("huanggai.in","r",stdin); freopen("huanggai.out","w",stdout); int i,t1,t2,t3,hp,nu; double now; scanf("%d%d%d%d%d%d%d",&a,&b,&c,&d,&n,&m,&s); s--; f[0][0][0][0][1]=1; sum=b+c+d; for(i=0;i<s;i++) for(t1=0;t1<=b;t1++) for(t2=0;t1+t2<=i&&t2<=c;t2++) { t3=i-t1-t2; if(t3>d)continue; for(hp=0;hp<m;hp++) { for(nu=1;nu<=n;nu++) { now=f[t1][t2][t3][hp][nu]; if(hp==m-1) f[t1+1][t2][t3][t2][nu+1]+=now*(b-t1)/(sum-i); else f[t1+1][t2][t3][hp+1][nu]+=now*(b-t1)/(sum-i); if(hp==m-1) f[t1][t2+1][t3][t2][nu+1]+=now*(c-t2)/(sum-i); else f[t1][t2+1][t3][hp+1][nu]+=now*(c-t2)/(sum-i); f[t1][t2][t3+1][hp][nu]+=now*(d-t3)/(sum-i); } ans+=n*f[t1][t2][t3][hp][n+1]; } } for(t1=0;t1<=b;t1++) for(t2=0;t1+t2<=i&&t2<=c;t2++) { t3=i-t1-t2; if(t3>d)continue; for(hp=0;hp<m;hp++) for(nu=1;nu<=n+1;nu++) { now=f[t1][t2][t3][hp][nu]; ans+=now*(nu-1); } } printf("%.10lf\n",ans); return 0;}
0 0
- 期望专题 三国杀之 黄盖
- 动态规划之概率(期望) DP专题
- 三国杀之内奸兵法
- 概率专题·期望
- Android真武剑之PopupWindow之三国杀
- 三国杀 中的概率计算 几何分布的期望和方差分析
- 2004.07.08,Thu - 周郎与黄盖
- 最新经典短信之三国杀寄语
- 自己写三国杀之架构分析
- 三国杀之反贼兵法
- 三国之杀场 初始运营数据
- 三国杀之无线网络安全解析
- 卡评测大师 三国杀之神%%%
- 三国杀
- 三国杀
- 三国杀
- 三国杀
- 三国杀
- 数据结构之---树
- 蓄水池抽样及实现
- cache 缓存算法
- 从身边的移动支付说起
- Deep Learning模型之:CNN卷积神经网络推导和实现
- 期望专题 三国杀之 黄盖
- 正确的关闭mongodb
- 使用Restful风格的Web Service(Maven版本)
- 交换排序中冒泡排序和快速排序的简单比较
- git diff
- 周瑜
- 泼水字教程
- 黑马程序员-----JAVA面向对象(三)
- c++ 中__declspec 的用法