codeforces 597 div2 E. Hyakugoku and Ladders(概率dp)
题目链接:https://codeforces.com/contest/1245/problem/E
题意:有一个10x10的网格,左下角是起点,左上角是终点,从起点开始,如图所示蛇形走到终点,每一步走的时候要摇骰子,骰子是几就走几步,但是到终点前的那6步,骰子必须是直接到终点的步数才能走过去,否则原地停留,题中还有一个条件,可能有一些网格上存在梯子,你可以直接沿着梯子到更高的一行,求从起点到终点的最小平均摇骰子的次数。
题解:这是一道明显的概率dp题,dp[i]表示到第i格子终点所需的期望,从后往前枚举。
考虑终点前的六个方格,每次只能是骰子 = 到终点的步数才能移动,所以前六格的dp[i] = 6。
剩余的方格就是用期望dp的套路解决,因为骰子有六种可能,枚举每次可以达到的这六种状态就行,每个状态都乘一个1/6,因为每次到达的方格可能直接沿梯子走到更靠上的方格x,所以这直接等价于梯子可以上去的方格dp[x] , 假设我要走step步,每次两者 dp[i-step]和dp[x] 相比要取一个min去更新dp[i]。
最终转移方程为 dp[i] = min(dp [ i-step ],dp[index[i-step] ] )
AC代码:
#include<iostream>
#include<vector>
#include<cstring>
#include<algorithm>
#include<queue>
#include<cstdio>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn = 1e2+5;
int index[15][15],grid[maxn];
double dp[maxn];
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
for(int i = 0;i<10;i++){
for(int j = 0;j<10;j++){
if(i%2 == 0) index[i][j] = i*10 + j;
else index[i][j] = i*10+(9 - j); //给方格构造一个index值,从0-99
}
}
for(int i = 0;i<10;i++){
for(int j = 0;j<10;j++){
int t;
cin>>t;
if(t == 0) grid[index[i][j]] = index[i][j];
else grid[index[i][j]] = index[i-t][j];//记录每个方格的index值,梯子能上去的方格
//两者index相等
}
}
dp[0] = 0;
for(int i = 1;i<=6;i++) dp[i] = 6;
for(int i = 7;i<100;i++){
double sum = 0;
for(int j = 1;j<=6;j++){
sum = sum + min(dp[i-j],dp[grid[i-j]]);//状态转移方程
}
dp[i] = (sum/6)+1;
}
printf("%.10lf",dp[99]);
return 0;
}
codeforces 597 div2 E. Hyakugoku and Ladders(概率dp)的更多相关文章
- Codeforces Round #597 (Div. 2) E. Hyakugoku and Ladders 概率dp
E. Hyakugoku and Ladders Hyakugoku has just retired from being the resident deity of the South Black ...
- Codeforces 148D 一袋老鼠 Bag of mice | 概率DP 水题
除非特别忙,我接下来会尽可能翻译我做的每道CF题的题面! Codeforces 148D 一袋老鼠 Bag of mice | 概率DP 水题 题面 胡小兔和司公子都认为对方是垃圾. 为了决出谁才是垃 ...
- codeforces 768 D. Jon and Orbs(概率dp)
题目链接:http://codeforces.com/contest/768/problem/D 题意:一共有k种球,要得到k种不同的球至少一个,q个提问每次提问给出一个数pi,问概率大小大于等于pi ...
- 2018.12.12 codeforces 935D. Fafa and Ancient Alphabet(概率dp)
传送门 概率dp水题. 题意简述:给你数字表的大小和两个数列,数列中为0的数表示不确定,不为0的表示确定的,求第一个数列字典序比第二个数列大的概率. fif_ifi表示第i ni~ ni n位第一个 ...
- Codeforces Round #105 D. Bag of mice 概率dp
http://codeforces.com/contest/148/problem/D 题目意思是龙和公主轮流从袋子里抽老鼠.袋子里有白老师 W 仅仅.黑老师 D 仅仅.公主先抽,第一个抽出白老鼠的胜 ...
- Educational Codeforces Round 13 E. Another Sith Tournament 概率dp+状压
题目链接: 题目 E. Another Sith Tournament time limit per test2.5 seconds memory limit per test256 megabyte ...
- CodeForces 54C-First Digit Law(数位,概率dp)
题意: 给你n个区间,在每个区间里各取一个数(随机取),求这n个数中超过K%的数是首位为1数的概率 分析: dp[i][j]取前i个数,有j个是首位为1的数的概率 易知,dp[i][j]=dp[i-1 ...
- Codeforces 235B Let's Play Osu! 概率dp(水
题目链接:点击打开链接 给定n表示有n个格子 以下每一个格子为O的概率是多少. 对于一段连续 x 个O的价值就是 x*x ; 问: 获得的价值的期望是多少. 思路: 把公式拆一下.. #include ...
- CodeForces 167B - Wizards and Huge Prize 期望概率dp
初步分析:把赢了的巡回赛的a值加起来就是最后的剩余空间 这个明显的是状态转移的dp啊,然而他的状态比较骚是个数组,表示剩余空间,f(i,j,b),i表示比到第几场,j表示赢了几场,b就是里面的核心状态 ...
随机推荐
- 微信小程序-展示后台传来的json格式数据
昨天粗粗的写了下后台数据传到微信小程序显示,用来熟悉这个过程,适合刚入门学习案例: 需了解的技术:javaSE,C3p0,jdbcTemplate,fastjson,html,javaScript,c ...
- 0级搭建类014-Red Hat Enterprise Linux 7.6 安装
RHEL 7.6 操作系统安装 这个很简单的嘛?有什么好讲的?
- Git和TortoiseGit
1.简介 Git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何或大或小的项目.它采用了分布式版本库的方式,不必服务器端软件支持. 2.Git和Svn的区别 1.Git 是分布式的,SVN 不是 ...
- Tiptop ERP 采购运费一键分摊
项目背景: 公司的采购运费在逐年上升,之前财务都是做在管理费用中,金额大了后已经严重造成成本失真,所以财务要求it部能帮助分摊运费 1.纸质单据 2.系统入库单apmt720 3.系统请款单apm ...
- hdu1005 矩阵快速幂
#include<iostream> #include<cstdio> #include<cstring> #include<set> #include ...
- Centos7安装gitlab-ce
1.官方推荐方式安装 参考https://www.gitlab.com.cn/installation/#centos-7?version=ce sudo yum install -y curl po ...
- Qt程序异常结束,The process was ended forcefully....
我用的Qt版本是5.9.6,运行了好几次程序都妥妥当当的,然后就被安排上了...出现如下错误: 也是刚入手Qt不久,出现这样的错误我以为是代码的问题,然后撤销一些代码发现还是这样的错,索性就关闭Qt然 ...
- vue项目出现Module not found: Error: Can't resolve 'stylus-loader'错误解决方案
因为没有安装stylus和stylus-loader npm install stylus stylus-loader --save-dev 安装成功后,使用npm install重新建立依赖 打开项 ...
- Go键盘输入与打印输出
输出 格式化打印占位符 符号 说明 %v 默认格式 %T 打印类型 %t 布尔类型 %s 字符串 %f 浮点数 %d 十进制的整数 %b 二进制的整数 %o 八进制 %x 十六进制0-9 a-f %X ...
- 素问 - 使用 PE、PB 做估值
摘自<小韭的学习圈> Q 哪些行业用PE看合适,哪些用PB看合适啊?其中的大致逻辑是什么? A PE = 股价 / 每股收益 使用PE的逻辑是,我们认为一个股票有价值,是因为公司未来能赚钱 ...