题目大概说一个1×n的格子,每个格子都有一定的黄金,起点在1,终点在n,通过投掷6面骰子前进与骰子点数一样的步数,如果会超过n就重新投,每到一个格子就获得其中的黄金。问到达n能得到的黄金数目的期望。

求概率是正推,求期望是逆推。。容我慢慢体会。。

期望:

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
double d[];
int main(){
int t,n,a[];
scanf("%d",&t);
for(int cse=; cse<=t; ++cse){
scanf("%d",&n);
for(int i=; i<=n; ++i){
scanf("%d",a+i);
}
memset(d,,sizeof(d));
d[n]=a[n];
for(int i=n-; i>=; --i){
int k=min(,n-i);
for(int j=; j<=k; ++j){
d[i]+=(d[i+j]+a[i])/k;
}
}
printf("Case %d: %f\n",cse,d[]);
}
return ;
}

也可以先求到每个格子的概率,然后概率×黄金数就是期望:

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
double d[];
int main(){
int t,n,a[];
scanf("%d",&t);
for(int cse=; cse<=t; ++cse){
scanf("%d",&n);
for(int i=; i<=n; ++i){
scanf("%d",a+i);
}
memset(d,,sizeof(d));
d[]=;
for(int i=; i<n; ++i){
int k=min(,n-i);
for(int j=; j<=k; ++j){
d[i+j]+=d[i]/k;
}
}
double res=;
for(int i=; i<=n; ++i) res+=d[i]*a[i];
printf("Case %d: %f\n",cse,res);
}
return ;
}

LightOJ1030 Discovering Gold(概率DP)的更多相关文章

  1. LightOJ 1030 - Discovering Gold - [概率DP]

    题目链接:https://cn.vjudge.net/problem/LightOJ-1030 You are in a cave, a long cave! The cave can be repr ...

  2. LightOj-1030 Discovering Gold (期望DP)

    You are in a cave, a long cave! The cave can be represented by a 1 x N grid. Each cell of the cave c ...

  3. Light OJ 1030 - Discovering Gold(概率dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1030 题目大意:有一个很长的洞穴, 可以看做是1-n的格子.你的起始位置在1的 ...

  4. LightOJ 1030 Discovering Gold (概率/期望DP)

    题目链接:LightOJ - 1030 Description You are in a cave, a long cave! The cave can be represented by a \(1 ...

  5. LightOj 1030 - Discovering Gold(dp+数学期望)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1030 题意:在一个1*n 的格子里,每个格子都有相应的金币数,走到相应格子的话,就会得 ...

  6. LightOJ1030 Discovering Gold

    题目链接:https://vjudge.net/problem/LightOJ-1030 知识点: 概率与期望 解题思路: 设某一个点 \(i\) 能到达的点的个数为 \(x\),其上有金 \(g\) ...

  7. LightOJ - 1030 Discovering Gold —— 期望

    题目链接:https://vjudge.net/problem/LightOJ-1030 1030 - Discovering Gold    PDF (English) Statistics For ...

  8. [LOJ 1030] Discovering Gold

    B - Discovering Gold Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu ...

  9. 1030 - Discovering Gold

    1030 - Discovering Gold    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 M ...

随机推荐

  1. 第12章 使用Samba或NFS实现文件共享

    章节简述: 本章节为读者讲述文件共享系统的作用,了解Samba与NFS服务程序的开发背景以及用法. 详细逐条讲解Samba服务配置参数,演示安全共享文件的配置策方法,并使用autofs服务程序自动挂载 ...

  2. IOS 页面之间的跳转

    1.UINavigationController popToViewController 对应popViewControllerAnimated: 也可以使用: [self.navigationCon ...

  3. 海量数据导入MySQL的注意事项

    对于千万行级别的数据,处理起来非常麻烦,例如有一个文件a.txt,大小超过2GB,共2000多万行,每行是一个新闻的相关信息,其中有一列为新闻标题,字符串型,新闻标题较长,现需要对新闻标题进行聚类,将 ...

  4. tar: Removing leading `/’ from member names

    tar: Removing leading `/’ from member names+2 分类:Web服务器 标签:tar 3,910人浏览   这并不是一个错误,而是一个警告,原因很简单,就是你在 ...

  5. 使用virtualenv搭建独立的Python环境

    virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题. 一.安装virtualenv virtualenv实际上是一个pyth ...

  6. /lib /usr/lib /usr/local/lib区别

    昨天问我/usr/lib 和/usr/local/lib 我仅记得一个是系统的,一个是用户的,于是今天查了查,有两篇文章介绍的不错,usr 很多人都认为是user缩写,其实不然,是unix syste ...

  7. kettle job通过javascript进行循环控制

    任何一种编程语言都少不了循环,kettle中的job也一样.那么kettle中的job是怎么通过JavaScript来达到类似于编程语言中的for循环呢? var max = parent_job.g ...

  8. 3.前端笔记之JavaScript基础

    作者:刘耀 部分内容参考一下链接 参考: http://www.cnblogs.com/wupeiqi/articles/5369773.html http://javascript.ruanyife ...

  9. CSDN客户端实现

    本文主要讲解实现了一个CSDN的安卓客户端,主要知识点如下 java爬虫获取网页数据 将java程序打包成jar包 Fragment+viewpager+TabPageIndicator实现Tab效果 ...

  10. Struts2中的ActionContext、OGNL及EL的使用

    文章分类:Java编程 本文基于struts2.1.8.1,xwork2.1.6 1.EL         EL(Expression Language)源于jsp页面标签jstl,后来被jsp2.0 ...