Problem Description
Akemi Homura is a Mahou Shoujo (Puella Magi/Magical Girl).

Homura wants to help her friend Madoka save the world. But because of the plot of the Boss Incubator, she is trapped in a labyrinth called LOOPS.

The planform of the LOOPS is a rectangle of R*C grids. There is a portal in each grid except the exit grid. It costs Homura  magic power to use a portal once. The portal in a grid G(r, c) will send Homura to the grid below G (grid(r+, c)), the grid on the right of G (grid(r, c+)), or even G itself at respective probability (How evil the Boss Incubator is)!
At the beginning Homura is in the top left corner of the LOOPS ((, )), and the exit of the labyrinth is in the bottom right corner ((R, C)). Given the probability of transmissions of each portal, your task is help poor Homura calculate the EXPECT magic power she need to escape from the LOOPS.

 
Input
The first line contains two integers R and C ( <= R, C <= ).

The following R lines, each contains C* real numbers, at  decimal places. Every three numbers make a group. The first, second and third number of the cth group of line r represent the probability of transportation to grid (r, c), grid (r, c+), grid (r+, c) of the portal in grid (r, c) respectively. Two groups of numbers are separated by  spaces.

It is ensured that the sum of three numbers in each group is , and the second numbers of the rightmost groups are  (as there are no grids on the right of them) while the third numbers of the downmost groups are  (as there are no grids below them).

You may ignore the last three numbers of the input data. They are printed just for looking neat.

The answer is ensured no greater than .

Terminal at EOF
Output
A real number at  decimal places (round to), representing the expect magic power Homura need to escape from the LOOPS.
Sample Input
0.00 0.50 0.50    0.50 0.00 0.50
0.50 0.50 0.00 1.00 0.00 0.00
 
Sample Output
6.000
 
Source
 

题意:有一个迷宫r行m列,开始点在[1,1]现在要走到[r,c] ,对于在点[x,y]可以打开一扇门走到[x+1,y]或者[x,y+1] ,消耗2点魔力 ,问平均消耗多少魔力能走到[r,c]

  1. 分析:假设dp[i][j]表示在点[i,j]到达[r,c]所需要消耗的平均魔力(期望) 
  2. 则从dp[i][j]可以到达: 
  3. dp[i][j],dp[i+1,j],dp[i][j+1]; 
  4. 对应概率分别为: 
  5. p1,p2,p3 
  6. 由E(aA+bB+cC...)=aEA+bEB+cEC+...//包含状态A,B,C的期望可以分解子期望求解  
  7. 得到dp[i][j]=p1*dp[i][j]+p2*dp[i+1][j]+p3*dp[i][j+1]+2;
 #include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<stdlib.h>
#include<queue>
#include<cstring>
using namespace std;
#define N 1006
int n,m;
double mp[N][N][];
double dp[N][N];
int main()
{
while(scanf("%d%d",&n,&m)==){
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
for(int k=;k<=;k++){
scanf("%lf",&mp[i][j][k]);
}
}
}
memset(dp,,sizeof(dp));
for(int i=n;i>=;i--){
for(int j=m;j>=;j--){
if(i==n && j==m) continue;//如果是在出口点,则期望值为0
if(mp[i][j][]==1.0) continue;//该点无路可走,期望值肯定为0(dp[i][j]=0)
dp[i][j]=(dp[i][j+]*mp[i][j][]+dp[i+][j]*mp[i][j][]+)/(-mp[i][j][]);
}
}
printf("%.3lf\n",dp[][]);
}
return ;
}

hdu 3853 LOOPS(概率 dp 期望)的更多相关文章

  1. HDU 3853 LOOPS 概率DP入门

    LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total Sub ...

  2. hdu 3853 LOOPS 概率DP

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

  3. hdu 3853 LOOPS (概率dp 逆推求期望)

    题目链接 LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Tota ...

  4. HDU 3853 LOOP (概率DP求期望)

    D - LOOPS Time Limit:5000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit St ...

  5. LOOPS HDU - 3853 (概率dp):(希望通过该文章梳理自己的式子推导)

    题意:就是让你从(1,1)走到(r, c)而且每走一格要花2的能量,有三种走法:1,停住.2,向下走一格.3,向右走一格.问在一个网格中所花的期望值. 首先:先把推导动态规划的基本步骤给出来. · 1 ...

  6. HDU 3853 LOOPS 可能性dp(水

    在拐~ #include <stdio.h> #include <cstring> #include <iostream> #include <map> ...

  7. HDU 3853LOOPS(简单概率DP)

    HDU 3853    LOOPS 题目大意是说人现在在1,1,需要走到N,N,每次有p1的可能在元位置不变,p2的可能走到右边一格,有p3的可能走到下面一格,问从起点走到终点的期望值 这是弱菜做的第 ...

  8. 2017 ICPC Asia Urumqi A.coins (概率DP + 期望)

    题目链接:Coins Description Alice and Bob are playing a simple game. They line up a row of nn identical c ...

  9. luogu P6835 概率DP 期望

    luogu P6835 概率DP 期望 洛谷 P6835 原题链接 题意 n + 1个节点,第i个节点都有指向i + 1的一条单向路,现在给他们添加m条边,每条边都从一个节点指向小于等于自己的一个节点 ...

  10. HDU 3853 LOOPS 期望dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3853 LOOPS Time Limit: 15000/5000 MS (Java/Others)Me ...

随机推荐

  1. iphone开发之适配iphone5

    iphone5出来了,从不用适配的我们也要像android一样适配不同分辨率的屏幕了.   公司产品新版本需要适配iphone5,经过一番折腾算是搞定了.下面分享给大家:   iphone5的屏幕分辨 ...

  2. Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类

    前言 近期做换肤功能,由于换肤程度较高,受限于平台本身,实现起来较复杂,暂时搁置了该功能,但也积累了一些经验,将分两篇文章来写这部分的内容,欢迎交流! 关键字:Android动态加载 声明 欢迎转载, ...

  3. Android开发所有视频教程汇总

    1.Mars的Android开发视频教程作者讲解的很详细,很全面,系统.以前出了两套视频,分别是<Java4Android视频教程>.<Android视频教程>,以及最新刚新出 ...

  4. top 命令SQLServer-sybase-oracle

    SQLServer: select top 10 * from tablename; select top 10 percent from tablename; select * from table ...

  5. ubuntu16.04 server安装小记

    由于本人有一台闲置的thinkpad电脑,所以打算在上边安装一个ubuntu16.04 server版本,其中遇到主要问题,做一下记录: 安装过程中出现“ubuntu16.04 server64 bu ...

  6. Jquery与DOM对象

    在第一次学习jquery中,常常会不能分辨DOM对象和Jquery对象,下面我们就简诉一下它们之间的关系和区别 1.DOM对象(Document Object Model) 文档对象模型,每一份DOM ...

  7. [转]Sql Server 2005中的架构(Schema)、用户(User)、登录(Login)和角色(Role)

    每一个概念的产生必然是因为碰到了无法解决的问题.换句话说,如果没有它,必然会导致某些问题难以解决.所以我想从这个角度切入,希望能把这几个复杂而暧昧的多角关系从最实用的角度来阐述清楚. 在问题的最初,我 ...

  8. hdu 5586 sum

    Problem Description There is a number sequence A1,A2....An,you can select a interval [l,r] or not,al ...

  9. C++11 lambda表达式学习

    lambda表达式是函数式编程的基础.咱对于函数式编程也没有足够的理解,因此这里不敢胡言乱语,有兴趣的可以自己查找相关资料看下.这里只是介绍C++11中的lambda表达式自己的认识.这里有参考文档h ...

  10. 初识CLR

    眨眼间我已经实习了半年时间并且转正了,身份也正式从一个学生转变为一个职场人,这个博客自从开始实习以来就一直没有更新过= =没错,就是我懒癌晚期,不过不行!一切都要开始走向正轨,此博会继续见证我的成长, ...