题目大意:有三个骰子,分别有k1,k2,k3个面。
每次掷骰子,如果三个面分别为a,b,c则分数置0,否则加上三个骰子的分数之和。
当分数大于n时结束。求游戏的期望步数。初始分数为0分析

 设 E[i]表示现在分数为i,到结束游戏所要掷骰子的次数的期望值。

 显然 E[>n] = 0; E[0]即为所求答案;

 E[i] = ∑Pk*E[i+k] + P0*E[0] + 1; (Pk表示点数和为k的概率,P0表示分数清零的概率) 

 由上式发现每个 E[i]都包含 E[0],而 E[0]又是我们要求的,是个定值。

 设 E[i] = a[i]*E[0] + b[i];

 将其带入上面的式子:  E[i] = ( ∑Pk*a[i+k] + P0 )*E[0] + ∑Pk*b[i+k] + 1;
 显然, 

   a[i] = ∑Pk*a[i+k] + P0; 

   b[i] = ∑Pk*b[i+k] + 1; 

  当 i > n 时: 

  E[i] = a[i]*E[0] + b[i] = 0; 

 所以 a[i>n] = b[i>n] = 0;   可依次算出 a[n],b[n]; a[n-1],b[n-1] ... a[0],b[0];  则 E[0] = b[0]/(1 - a[0]); 
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 using namespace std;
 5 int main()
 6 {
 7     int t,n,k1,k2,k3,a,b,c;
 8     scanf("%d",&t);
 9     while(t--)
10     {
11         scanf("%d %d %d %d %d %d %d",&n,&k1,&k2,&k3,&a,&b,&c);
12         int sum=k1+k2+k3;
13         double pp=1.0/(k1*k2*k3);
14         double p[10000];
15         memset(p,0,sizeof(p));
16         for(int i=1; i<=k1; i++)
17         {
18             for(int j=1; j<=k2; j++)
19             {
20                 for(int k=1; k<=k3; k++)
21                     if(i!=a||j!=b||k!=c)
22                         p[i+j+k]+=pp;
23             }
24
25         }
26         double a[1000]= {0},b[1000]= {0};
27         for(int i=n; i>=0; i--)
28         {
29             for(int k=3; k<=sum; k++)
30             {
31                 a[i]+=a[i+k]*p[k];
32                 b[i]+=b[i+k]*p[k];
33             }
34             a[i]+=pp;
35             b[i]+=1;
36         }
37         printf("%.15lf\n",b[0]/(1-a[0]));
38     }
39     return 0;
40 }

 

转载于:https://www.cnblogs.com/tsw123/p/4434882.html

ZOJ Problem Set - 3329 One Person Game相关推荐

  1. ZOJ Problem 1005 jugs

    题目 In the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were confronted with the ...

  2. ZOJ Problem Set - 1331 Perfect Cubes

    这个题啊,一看就是暴力,暴力,暴力!!! 但是,暴力也是要做到暴力的恰到好处:看题 For hundreds of years Fermat's Last Theorem, which stated ...

  3. ZOJ Problem Set - 1048 Financial Management

    我承认这是一道水的不能再水的题,今天一下就做到了,还是无耻的帖上来吧 #include <stdio.h>int main() {double sum=0;for(int i=1;i< ...

  4. Argus(ZOJ Problem Set - 2212)(优先队列)

    Argus   时间限制(普通/Java):1000MS/3000MS     运行内存限制:65536KByte 总提交: 3            测试通过: 2 描述 A data stream ...

  5. ZOJ Problem Set - 1730 Crazy Tea Party

    #include<cstdio> int main(){int T,n;scanf("%d",&T);while(T--){scanf("%d&quo ...

  6. ZOJ Problem Set - 1067 Color Me Less

    这道题目很简单,考察的就是结构体数组的应用,直接贴代码了 #include <stdio.h> #include <math.h>typedef struct color {i ...

  7. ZOJ Problem Set - 1008

    1.翻译及思路 http://blog.csdn.net/dapengbusi/article/details/7313785 http://acm.sdut.edu.cn/bbs/read.php? ...

  8. ZOJ Problem Set - 1009

    1.参考 http://blog.csdn.net/xiaogugood/article/details/17922105 这篇博客对算法介绍的很详细,我看这道题的时候,将题目理解出错,所以进入了一个 ...

  9. ZOJ Problem Set - 4043 Virtual Singers(2018acm 青岛赛区热身赛)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5795 背景描述: 已经记不起来上一次做题是什么时候的事了...大概是 ...

最新文章

  1. 驱动学习之LED驱动框架
  2. mysql M/S配置小记
  3. 实验11 编写子程序
  4. transporter上传卡正在交付_【iOS】Xcode11使用Transporter将APP上传到App Store,卡在正在验证APP...
  5. windows--reg--删除注册表指定的键(也叫项)、指定的值
  6. Mybatis Generator 自动生成数据库XML(Mybatis Generator 逆向工程)
  7. android 速度传感器,Android实战技巧之四十二:加速度传感器
  8. 20191014:快速排序1.2
  9. 基于DEAP库的python进化算法--遗传算法实践--非线性函数寻优
  10. java clob内存溢出_java - 从JSON创建CLOB属性 - 堆栈内存溢出
  11. Jenkins插件安装
  12. 原生android系统换主题字体,Android 自定义字体,更换系统默认显示的字体使用自定义字体...
  13. php集成环境安装包比较,PHP集成环境phpStudy安装包分享
  14. beego 最新版本_LFA (Linux For All) Build 191111 发布,基于Ubuntu由最新内核支持的新版本...
  15. 微信小程序服务器端语言,微信小程序后端用什么语言好
  16. Hook技术看这篇就够了
  17. 2019最新Python学习路线(Python学习教程_Python学习视频):Python2和Python3你们都是怎么选的?
  18. 简易炸弹超人 题解(蓝桥杯中级组2023选拔赛)
  19. (大白话版)子网划分、进制换算
  20. vue.config.js中lintOnSave配置

热门文章

  1. RS232详解(续)
  2. http、TCP/IP协议与socket之间的区别
  3. vc6.0出现无法解析错误
  4. android跳转到打电话,Android 应用跳转到拨打电话界面或qq进行聊天(qq咨询)
  5. Mybatis使用总结
  6. futuretask java 并发请求_图文并茂理解 Java 多线程
  7. python为什么从0开始_为什么大多数编程语言中,索引都是从0开始
  8. 002_Maven命令
  9. linux卸载minicom,ubuntu下minicom超级终端的使用方法
  10. Android动态加载技术