题意:对于每一格,都可以往右走,原地不走,往下走,概率分别为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. codevs 1036 商务旅行 (倍增LCA)

    /* 在我还不知道LCA之前 暴力跑的SPFA 70分 三个点TLE */ #include<iostream> #include<cstdio> #include<cs ...

  2. group by、order by 先后顺序问题

    今天遇到个小问题 本来是很基础的问题 应该说 基础知道掌握的不牢  好了不说 错误 语句 :   select  a.a1  from table a  where order by a.a1 gro ...

  3. 7-ajax的同步和异步?

    同步和异步统一根据send()执行的位置来实现分割逻辑同步:1.send()后统一不会被执行,直到http事务完成之后才会之后后续逻辑.2.堵塞send()方法的逻辑.异步:1.send()后面照样执 ...

  4. js星级评分点击星级评论打分效果--收藏--转载

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. ASP.NET实现从服务器下载文件2

    转:http://lanhy2000.blog.163.com/blog/static/436786082011105104110713/    假设在服务器的根目录下有个名为Download的文件夹 ...

  6. (转)模板引擎类dedetemplate.class.php使用说明

    1.概述 织梦的模板标签类似于XML格式,所有的模板都含有定界符,默认情况下是{dede:*}和{/dede:*},“*”代表模板标记名称. 一般情况下{dede:*}和{/dede:*}是成对出现的 ...

  7. sql - 复制表

    1,复制表结构和内容 1)这个表: select * into new_table_name from old_table_name ref:SQL复制数据表及表结构

  8. dom4j 笔记【转】

    SAXReader reader = new SAXReader(); Document doc = reader.read(...); List childNodes = doc.selectNod ...

  9. C#使用Expand、Shell32解压Cab、XSN文件

    前言: 需要解压InfoPath表单的xsn文件,在项目中以前使用的是Expand命令行解压,都没有出过问题,近段时间项目中突然报错解压失败,通过分析解压操作得出结论: 1.正常正常情况下,expan ...

  10. thinkphp中ajax用户名校验

    ajax实在是太神奇了,刚刚接触,不足之处,请大家指正. 采用Ajax方式进行页面无刷新提示,来检测用户名是否存在. 搭建一个thinkphp的环境,在index.html中,ajax代码如下: &l ...