期望概率DP简单题

从[1,1]点走到[r,c]点,每走一步的代价为2

给出每一个点走相邻位置的概率,共3中方向,不动: [x,y]->[x][y]=p[x][y][0] ,  右移:[x][y]->[x][y+1]=p[x][y][1];  左移:[x][y]->[x+1][y]=p[x][y][2];

问最后走到[r,c]的期望

dp[i][j]为从[i][j]点走到[r][c]的期望

有方程:

dp[i][j]=    (dp[i][j]+2)*p[i][j][0]  +   (dp[i][j+1]+2)*p[i][j][1]    +    (dp[i+1][j]+2)*p[i][j][2] ;

移项合并: dp[i][j]= (  (dp[i][j+1]+2)*p[i][j][1]    +    (dp[i+1][j]+2)*p[i][j][2]   +   p[i][j][0]*2  )  /  (1-p[i][j][0])

特判p[i][j][0]==1 的情况

#include "stdio.h"
#include "string.h"
#include "math.h"
double p[1010][1010][3],dp[1010][1010]; int main()
{
int n,m,i,j; while (scanf("%d%d",&n,&m)!=EOF)
{
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
scanf("%lf%lf%lf",&p[i][j][0],&p[i][j][1],&p[i][j][2]); memset(dp,0,sizeof(dp)); for (i=n;i>=1;i--)
for (j=m;j>=1;j--)
{
dp[i][j]=(dp[i][j+1]+2)*p[i][j][1]+(dp[i+1][j]+2)*(p[i][j][2])+p[i][j][0]*2;
if (fabs(p[i][j][0]-1)<=0.00000000001) dp[i][j]=0;
else dp[i][j]/=(1-p[i][j][0]);
}
printf("%.3lf\n",dp[1][1]);
}
return 0;
}

HDU 3853 期望概率DP的更多相关文章

  1. hdu 3853 LOOPS 概率DP

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

  2. HDU 3853 LOOPS 概率DP入门

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

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

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

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

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

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

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

  6. 【BZOJ 3652】大新闻 数位dp+期望概率dp

    并不难,只是和期望概率dp结合了一下.稍作推断就可以发现加密与不加密是两个互相独立的问题,这个时候我们分开算就好了.对于加密,我们按位统计和就好了;对于不加密,我们先假设所有数都找到了他能找到的最好的 ...

  7. 【BZOJ 3811】玛里苟斯 大力观察+期望概率dp+线性基

    大力观察:I.从输出精准位数的约束来观察,一定会有猫腻,然后仔细想一想,就会发现输出的时候小数点后面不是.5就是没有 II.从最后答案小于2^63可以看出当k大于等于3的时候就可以直接搜索了 期望概率 ...

  8. 【NOIP模拟赛】黑红树 期望概率dp

    这是一道比较水的期望概率dp但是考场想歪了.......我们可以发现奇数一定是不能掉下来的,因为若奇数掉下来那么上一次偶数一定不会好好待着,那么我们考虑,一个点掉下来一定是有h/2-1个红(黑),h/ ...

  9. BZOJ1415: [Noi2005]聪聪和可可 最短路 期望概率dp

    首先这道题让我回忆了一下最短路算法,所以我在此做一个总结: 带权: Floyed:O(n3) SPFA:O(n+m),这是平均复杂度实际上为O(玄学) Dijkstra:O(n+2m),堆优化以后 因 ...

随机推荐

  1. 网页制作之html基础学习4-格式与布局

    1.position:fixed 锁定位置(相对于浏览器的位置),例如有些网站的右下角弹窗 例: <head> <title>123</title> <sty ...

  2. File 操纵目录

    mkdir()   创建目录 不可及联创建    即父路径中一旦有不存在文件夹  即创建失败 mkdirs() 创建目录,及联创建 list() 列出目录内所包含的文件名(string) listFi ...

  3. zookeeper 分布式应用好处

    <pre name="code" class="html"> 举个例子 比如我以前通过haproxy 负载两台tomcat8082 比如api01 ...

  4. python核心编程--笔记

    python核心编程--笔记 的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找pyt ...

  5. Android自己定义控件(状态提示图表)

    [工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处.尊重分享成果] 1 背景 前面分析那么多系统源代码了.也该暂停下来歇息一下,趁昨晚闲着看见一个有意思的需求就操 ...

  6. loadrunner参数化总结

    Select next row:Sequential,Rondom,Unique Update value on:Each iteration,Each occurrence,Once 下面分别对这两 ...

  7. javascript笔记整理(概述,变量,数据类型)

    A.概述 1.输出工具: document.write()---可以是html alert()---字符串 prompt(text,defaultText) text---可选.要在对话框中显示的纯文 ...

  8. [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传

    原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件 ...

  9. Android Studio经常使用操作技巧(不断更新)

    这段时间一直在用Android Studio做一些Demo的开发.一開始从Eclipse中转向这个开发工具,各种不适应,希望此博文能够一直更新.还有网友能够分享出自己方便更好更快开发的一些技巧. 首先 ...

  10. Swift - 产生不重复数字的随机数生成器

    在Swift中,可以使用函数类型的参数,也可以使用函数类型的返回值.而作为返回值的函数,还能“捕获”外部的值,并多次使用它.这个特性,常可用来创建各种生成器. 下面通过创建一个“随机数生成器函数”作为 ...