题意:对于每一格,都可以往右走,原地不走,往下走,概率分别为a[i],b[i],c[i](每一个格子与其他格子的概率不一定相同)。在R*C的棋盘上(输入数据保证不会走出棋盘),求从(0, 0)走到(R-1, C-1)所需要的步数*2的期望是多少。

解法:就是最普通的dp,从(R-1, C-1)往(0, 0)算就好。设dp[i][j]表示达到目标状态的步数期望*2。dp[i][j] = dp[i][j]*a[k] + dp[i][j+1]*b[k] + dp[i+1][j]*c[k]。注意,如果a[k]= 1,应该直接dp[i][j] = 0; continue。

tag: 概率DP, 水题

 /*
* Author: Plumrain
* Created Time: 2013-11-07 23:13
* File Name: DP-HDU-3853.cpp
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath> using namespace std; #define CLR(x) memset(x, 0, sizeof(x))
const double eps = 1e-;
struct grd{
double p[], x[];
}; int r, c;
grd a[][];
double d[][]; void init()
{
for (int i = ; i < r; ++ i)
for (int j = ; j < c; ++ j)
for (int k = ; k < ; ++ k)
scanf ("%lf", &a[i][j].p[k]);
} double DP()
{
CLR (d);
for (int i = r-; i >= ; -- i)
for (int j = c-; j >= ; -- j)
if (!(i == r- && j == c-)){
if (fabs(a[i][j].p[] - ) < eps) continue;
d[i][j] = (d[i][j+]*a[i][j].p[] + d[i+][j]*a[i][j].p[] + ) / ( - a[i][j].p[]);
}
return d[][];
} int main()
{
while (scanf ("%d%d", &r, &c) != EOF){
init();
printf ("%.3lf\n", DP());
}
return ;
}

HDU 3853 LOOPS的更多相关文章

  1. HDU 3853 LOOPS 期望dp

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

  2. HDU 3853 LOOPS:期望dp【网格型】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3853 题意: 有一个n*m的网格. 给出在每个格子时:留在原地.向右走一格,向下走一格的概率. 每走一 ...

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

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

  4. HDU 3853 LOOPS 概率DP入门

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

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

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

  6. hdu 3853 LOOPS(基础DP求期望)

    题目大意 有一个人被困在一个 R*C(2<=R,C<=1000) 的迷宫中,起初他在 (1,1) 这个点,迷宫的出口是 (R,C).在迷宫的每一个格子中,他能花费 2 个魔法值开启传送通道 ...

  7. hdu 3853 LOOPS 概率DP

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

  8. HDU 3853 LOOPS 可能性dp(水

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

  9. HDU 3853:LOOPS(概率DP)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=3853 LOOPS Problem Description   Akemi Homura is a M ...

随机推荐

  1. Linux shell入门基础(四)

    四.进程优先级前台后台 01.进程控制 #find /name aaa & #ps aux | grep find #updatedb &  #ps aux | grep update ...

  2. __name__属性

    #coding=utf-8#首先我们分别看一下这个模块在不同场景中的__name__的值print __name__ #其次我们看一下__name__属性的常用情况if __name__==" ...

  3. Dialog式的Activity(AndroidActivity生命周期)

    概述 和普通的Activity跳转稍微不同的是,当第1个Activity跳转到第二个Activity后,如果点击'back'按钮(即Android键盘的按钮,则不会调用调用第一个Activity的on ...

  4. (Error) The type AESKeyGenerator is not accessible due to restriction on required library.

    error for 'Access restriction: The type AESKeyGenerator is not accessible due to restriction on requ ...

  5. 【原】push过快的错误 (Pushing the same view controller instance more than once is not supported)

    今天在点击按钮push viewController 时,控制台报错: Terminating app due to uncaught exception 'NSInvalidArgumentExce ...

  6. Xcode工程添加第三方文件的详细分析 Create folder references for any added folders

    在开发iOS项目的时候需要导入第三方的库文件,但是通过Xcode导入第三方源文件的时候会提示一些信息,不知所以然. 现在看到的文档都是针对Xcode3的,针对Xcode4的说明很少,现在分享出来. 官 ...

  7. ajax省市线三级联动

    <script type='text/javascript' src='http://ajax.useso.com/ajax/libs/jquery/1.7.2/jquery.min.js?ve ...

  8. Delphi ComboBox的属性和事件、及几个鼠标事件的触发

    临时做了两个小的测试程序,为了彻底弄清楚combobox的OnClick.OnChange.OnDropDown.OnCloseUp.OnSelect事件的触发及其先后顺序. 另附常用鼠标事件的触发情 ...

  9. Unable to locate package错误解决办法

    新装了VMWare Player,结果装上Ubuntu12.04后安装软件都提示:Unable to locate package错误,解决方法非常简单,终端输入以下命令即可: sudo apt-ge ...

  10. Java学习----构造方法的重载

    一个类中有多个同名的参数不一样(参数的个数,参数的类型,参数的顺序)的构造方法 public class Student { public Student() { System.out.println ...