Time Limit:1000MS  Memory Limit:65536K
Description 
概率论的起源与赌博问题有关。16世纪,意大利的学者吉罗拉莫·卡尔达诺(Girolamo Cardano,1501——1576)开始研究掷骰子等赌博中的一些简单问题。17世纪中叶,当时的法国宫廷贵族里盛行着掷骰子游戏,游戏规则是玩家连续掷 4 次骰子,如果其中没有 6 点出现,玩家赢,如果出现一次 6 点,则庄家(相当于现在的赌场)赢。按照这一游戏规则,从长期来看,庄家扮演赢家的角色,而玩家大部分时间是输家,因为庄家总是要靠此为生的,因此当时人们也就接受了这种现象。

那么现在让我们来计算一个概率问题。
一个骰子有n(4≤n≤8)个面,随机投掷m(1≤m≤32)次,请计算出现连续最长x个相同面的概率。
Input 
输入只含2个整数,依次表示n、m,以空格隔开。
Output 
输出m行,第i行输出x=i的概率。(结果请四舍五入到小数点后第3位。)
Sample Input 
4 5
Sample Output 
0.316
0.527
0.129
0.023
0.004


这题是第二次写概率dp题了,第一次是写抛硬币的问题,这次题很相似,可是又写错了,无奈找人要了代码,终于搞定了这题。一直错在一个地方就是当前掷的和前面不一样,那个当前连续的次数应该为1,结果写成了k,囧。。。

以“当前已投掷的次数”、“当前连续出现过最长的相同数字的次数”、“最后投掷的相同的数字的次数”这三个状态进行动态规划。每种状态只有两种转移:投出跟上一次投的一样的数、投出跟上一次投的不一样的数。即每个状态转移的复杂度为O(1),故总复杂度为O(m3)。
下面是我的代码
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{double dp[40][40][40]={0},ans;int n,m,i,j,k;scanf("%d%d",&n,&m);dp[1][1][1]=1;for(i=1;i<=m;i++){for(j=1;j<=i;j++){for(k=1;k<=j;k++){if(k+1<=j)dp[i+1][j][k+1]+=dp[i][j][k]*1.0/n;elsedp[i+1][k+1][k+1]=dp[i][j][k]*1.0/n+dp[i+1][k+1][k+1];dp[i+1][j][1]+=dp[i][j][k]*((n-1.0)/n);}}}for(i=1;i<=m;i++){ans=0;for(j=1;j<=i;j++)ans+=dp[m][i][j];printf("%.3f\n",ans);}return 0;
}

命运年轮 -概率dp相关推荐

  1. 【CCPC-Wannafly Winter Camp Day4 (Div1) H】命命命运(概率DP)

    点此看题面 大致题意: 有\(6\)个人玩大富翁,共有\(n\)块地,进行\(500\)轮,已知每个人掷骰子掷出\(1\sim6\)的概率.当某人到达一块未被占领的地时,他可以占领它.求最后每个人占有 ...

  2. 2018.09.01 poj3071Football(概率dp+二进制找规律)

    传送门 概率dp简单题. 设f[i][j]表示前i轮j获胜的概率. 如果j,k能够刚好在第i轮相遇,找规律可以发现j,k满足: (j−1)>>(i−1)(j−1)>>(i−1) ...

  3. Discovering Gold LightOJ - 1030[概率dp或者记忆化搜索]

    题目大意:有一个[1,n][1,n][1,n]的数轴,数轴上的每个对应位置上都有金矿,你初始位置是1,然后你每次都会投色子决定你下一步跳到哪里,如果你跳出了nnn,那么你就要重新投.问你跳到nnn的时 ...

  4. 【原创】概率DP总结 by kuangbin

    概率DP主要用于求解期望.概率等题目. 转移方程有时候比较灵活. 一般求概率是正推,求期望是逆推.通过题目可以体会到这点. 首先先推荐几篇参考的论文: <信息学竞赛中概率问题求解初探> & ...

  5. poj 3071 Football(概率dp)

    http://poj.org/problem? id=3071 大致题意:有2^n个足球队分成n组打比赛.给出一个矩阵a[][],a[i][j]表示i队赢得j队的概率.n次比赛的流程像这样France ...

  6. HDU 5001 概率DP || 记忆化搜索

    2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP  測 ...

  7. hdu 3853 LOOPS 概率DP

    简单的概率DP入门题 代码如下: 1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 ...

  8. HDU - 4035 Maze(概率dp)

    题目链接:点击查看 题目大意:给出一个 n 个点的树,初始时位于点 1 ,每个点都会给出一个概率 k[ i ] 和一个概率 e[ i ] ,其代表的意义分别是: k[ i ] :在点 i 有 k[ i ...

  9. SDUT - 2623 The number of steps(概率dp)

    题目链接:点击查看 题目大意:给出一个 n 层的三角形,第一层有 1 个点,第二层有 2 个点,第三层有 3 个点 ... 第 n 层有 n 个点,现在规定从第一层的点向下出发: 如果左下方有点并且右 ...

最新文章

  1. Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)
  2. 五分钟带你入门TensorFlow
  3. 个人微信订阅号自定义菜单空白
  4. 走近webpack(3)--图片的处理
  5. 学习Python中用numpy与matplotlib遇到的一些数学函数与函数的绘图
  6. 利用Github搭建免费图床
  7. 英特尔:5G将释放云的潜力,为垂直行业带来巨大商机
  8. 华为手机左侧快捷方式,手机桌面太复杂?华为手机自动对齐整理桌面图标方法!...
  9. 如何辅导孩子做学前班数学题?
  10. ArcGIS server9.3实现根据坐标定位
  11. 企业网站制作多少钱、企业网站需要多少钱、建立网站需要花多少钱
  12. 截部分陈宏对用线段树解矩形并的轮廓(picture 问题的深入讨论)
  13. CSS几种常见的页面布局方式介绍
  14. jsPDF生成PDF文件,文件不全问题,后台进行文件下载,前台不下载
  15. VS2010、SQL Server 2008安装详解
  16. 2016级算法期末上机-I.难题·ModricWang's Fight with DDLs III
  17. 设计水花飞溅柠檬汽水饮料广告的PS教程
  18. sql 处理数据字段为空 如果为空转换成别的值
  19. 宅基地信息管理系统、审批监管平台
  20. 计算机专业中经典书籍(程序猿和大学生必读)

热门文章

  1. 数据访问层DAL的再次重构_3(转载)
  2. LHAPDF configure error - 2020.01.02
  3. KY16 求root(N, k)|模拟暴力解法
  4. A.M. Best确认中国再保险(集团)股份有限公司及其子公司信用评级
  5. 根据帧率控制延时时间
  6. 深度学习 ycbcr的运用
  7. strcpy函数复制字符串
  8. Linux中uniq去重以及对两个文件取交集,并集,差集
  9. android .recycle(),Android系统中Bitmap是否有调用recycle方法的必要性
  10. 安装Ubuntu14.04教程