Broken robot CodeForces - 24D 期望dp
2017-08-12 13:35
369 查看
题意:n*m的棋盘,一个机器人在(i,j)处,每次等概率地停在原地,向左移动一格,向右移动一格,向下移动一格(不能移出棋盘).求走到最后一行所需期望步数.n<=1000,m<=1000
先讲坑点,1原地停留算一步,2要考虑机器人在同一层楼无限走路,3,m=1情况特殊考虑;
思路:因为是期望dp所以是逆推;从底层推到机器人所在层数;
先最外面套一层关于层数的循环;然后在套一层代表机器人可以在同一层游荡的循环,(循环次数随意,只要不超时,且使得结果在误差范围内都行,66好看);
然后就是同一层的循环;
若机器人不在两端,就是有个地方可以呆
dp[i][j]=dp[i+1][j](1.0/4)+dp[i][j-1](1.0/4)+dp[i][j+1](1.0/4)+dp[i][j](1.0/4)+1;
如果在两端就是三个地方可以呆;
公式就是上面的稍改;
先讲坑点,1原地停留算一步,2要考虑机器人在同一层楼无限走路,3,m=1情况特殊考虑;
思路:因为是期望dp所以是逆推;从底层推到机器人所在层数;
先最外面套一层关于层数的循环;然后在套一层代表机器人可以在同一层游荡的循环,(循环次数随意,只要不超时,且使得结果在误差范围内都行,66好看);
然后就是同一层的循环;
若机器人不在两端,就是有个地方可以呆
dp[i][j]=dp[i+1][j](1.0/4)+dp[i][j-1](1.0/4)+dp[i][j+1](1.0/4)+dp[i][j](1.0/4)+1;
如果在两端就是三个地方可以呆;
公式就是上面的稍改;
#include<iostream> #include<cmath> #include<algorithm> using namespace std; double dp[1010][1010]; int main() { int n,m,a,b; scanf("%d%d%d%d",&n,&m,&a,&b); if(n==a) printf("0.0000000000\n"); else { for(int i=n-1;i>=a;i--) { for(int k=1;k<=66;k++) { for(int j=1;j<=m;j++) { if(m==1) dp[i][1]=(dp[1+i][1]*1.0/2+1)/(1.0/2); else if(j==1) dp[i][j]=(dp[i+1][j]*(1.0/3)+dp[i][j+1]* (1.0/3)+1)/(2.0/3); else if(j==m) dp[i][j]=(dp[i+1][j]*(1.0/3)+dp[i][j-1]*(1.0/3)+1)/(2.0/3); else dp[i][j]=(dp[i+1][j]*(1.0/4)+dp[i][j-1]*(1.0/4)+dp[i][j+1]*(1.0/4)+1)/(3.0/4); } } } printf("%.10f\n",dp[a][b]); } }
相关文章推荐
- codeforces round 362 div2 D Puzzles 树形dp + 期望
- 【Codeforces Round 331 (Div 2)D】【DP 记忆化搜索 期望DP区间性质 好题】Wilbur and Trees 砍树随机从右从左概率左倒右倒的期望底面覆盖长度
- 【Codeforces Round 333 (Div 2)E】【期望DP概率做法 树状数组转前缀和】Kleofáš and the n-thlon n场比赛m个人获得总名次的期望
- 【Codeforces Round 363 (Div 2) E】【概率DP 期望DP 逆推等价法】LRU Cache替换LRU原则超多步数后每个数据在Cache中的概率
- Codeforces Gym 101174 D. Dinner Bet (期望 + DP)
- 【Codeforces Round 275 (Div 2)E】【状压DP 概率DP求期望 线性相加思想 二进制系统函数】Game with Strings n个串目标串随机猜位置随机的猜出答案的期望步
- 解题报告: Educational Codeforces Round 24 A,B,C
- Hard problem CodeForces - 706C (DP)
- 【Educational Codeforces Round 1E】【动态规划-多维DP】Chocolate Bar 矩形巧克力掰开吃的最小成本
- Codeforces Round #367 (Div. 2) C. Hard problem (dp)
- [线段树][矩乘][DP]Codeforces Round 573D && RussianCodeCup Thanks-Round .Bear and Cavalry
- Round 6 B - Greg and Graph CodeForces - 295Div.1B - Floyd && DP
- Educational Codeforces Round 16 E. Generate a String (DP)
- Educational Codeforces Round 16 E. Generate a String (dp)
- DP Codeforces Round 401#div2 E.Hanoi Factory
- Codeforces Round #290 (Div. 2) D. Fox And Jumping dp
- codeforces gym 100357 H (DP 高精度)
- [hihoCoder挑战赛24](贪心)(期望DP)(后缀自动机)
- Codeforces Beta Round #50, problem: (C) First Digit Law 数位DP
- 【尺取或dp】codeforces C. An impassioned circulation of affection