题意:就是让你从(1,1)走到(r, c)而且每走一格要花2的能量,有三种走法:1,停住。2,向下走一格。3,向右走一格。问在一个网格中所花的期望值。

首先:先把推导动态规划的基本步骤给出来。

·  1.设变量:(注意:设置变量时,要能够使整个求解过程可以分为多个阶段。)

   2.分析阶段决策,并写出决策函数。(也就是能体现前阶段决策后阶段关系的函数)

   3.写出指标函数。(也是就是我们得出解的函数。)

先第一步:设置变量,我们分析这个题的是从(1,1)到(r, c)那么什么能体现“阶段”这个词的东西呢?

     十分明显,那就是步数(把停下也看做一步)啊;那么来具体分析一下。假设:我们走到(x,y)那么他的上一阶段是不是有三种可能,那么这三种上一阶,是不是由上上一阶的决策所决定的。是不是这样就把分层分阶段给划出来了。那么我们就设dp[i][j]  表示走到(x,y)时的期望值,最重要的是i,j的意义。

然后第二步:(分析决策函数)

设Sk便是第k阶段. 设决策为Pk

则S1={(1,1),(2,1),(1,2);则,那么Pk就在S1中决策,我们这道题的决策P1=P01+P02+P0<=>dp[1][1]=dp[1][1]+dp[2][1]+dp[1][2](我只是想更好的让大家理解这个决策)。好了,这个决策函数就写好了

最后第三步:(分析指标函数)

设Vk为指标函数。当然,一般有最值等等类型。我还是回到原题。假设走到(x, y)那么这前部的期望值是由决策函数来决策的。

回到决策函数:Pk=P(k-1)1+P(k-1)2+P(k-1)3  (设h1,h2, h3分别是对应的概率) 那么Vk=(h1*P(k-1)1+h2*P(k-1)2+h3*P(k-1)3+2)

好了,其实指标函数就是动态规划方程式了, dp[i][j]=(p[i][j][0]*dp[i][j]+p[i][j][1]*dp[i][j+1]+p[i][j][2]*dp[i+1][j]+2)  ===>

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

ac代码:

#include<cstring>
#include<cstdio>
#define maxn int(1e3+2)double dp[maxn][maxn], p[maxn][maxn][3];int main(){int r, c;while (scanf("%d%d", &r, &c) != EOF){for (int i = 1; i <= r;++i)for (int j = 1; j <= c;++j)for (int k = 0; k < 3; ++k)scanf("%lf", &p[i][j][k]);dp[r][c] = 0;for (int i = r; i>0; --i)for (int j = c; j > 0;--j)if (p[i][j][0] == 1||i==r&&j==c)continue;else {dp[i][j] = (p[i][j][1] * dp[i][j + 1] + p[i][j][2] * dp[i + 1][j] + 2) / (1 - p[i][j][0]);}printf("%.3lf\n", dp[1][1]);}
}

转载于:https://www.cnblogs.com/ALINGMAOMAO/p/9719994.html

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

  1. HDU 5001 概率DP || 记忆化搜索

    2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP  測 ...

  2. HDU - 6558/概率dp(从后往前推导)

    VJ地址 中文题意: 有一个苦逼程序员小A,他有一个女朋友B,最近看上了一个游戏,他想买这个游戏,可是小A是一个怕老婆的人,每个 月的工资都需要上交,小A找他女朋友商量了好久,最后B同意他用每个月的工 ...

  3. LOOPS HDU - 3853(概率dp,期望)

    题意: 有一个R*C的方格.一个人想从(1,1)走到(r,c).在每个格子都有三种选择,向下,向右,或者原地不动.每个格子里的每个选择都有一定的概率.而每次移动都需要消耗2点的能量,问期望消耗的能量是 ...

  4. LOOPS HDU - 3853 dp求期望值

    问题: Akemi Homura is a Mahou Shoujo (Puella Magi/Magical Girl). Homura wants to help her friend Madok ...

  5. hdu 4305 概率dp

    1 /* 2 题目大意:有n个房间由n-1个隧道连接起来,从1号房间开始, 3 每个节点i都有三种可能: 4 1.被杀死,回到节点1,概率为ki; 5 2.找到出口,离开迷宫,概率ei; 6 3.与它 ...

  6. HDU 4336 概率DP 状压

    用d(S)表示所收集到卡片种类状态为S时还需买多少包小浣熊(这是我YY的)的期望. 则有方程d(S) = 1 + (P(空) + P(有)) * d(S) + P(无) * d(T) 其中P(空)表示 ...

  7. 【原创】概率DP总结 by kuangbin

    概率DP主要用于求解期望.概率等题目. 转移方程有时候比较灵活. 一般求概率是正推,求期望是逆推.通过题目可以体会到这点. 首先先推荐几篇参考的论文: <信息学竞赛中概率问题求解初探> & ...

  8. hdu 3853 LOOPS 概率DP

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

  9. HDU 1493 QQpet exploratory park(概率DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1493 题意:一排有61个格子标号0-60.其中停在5,12, 22, 29, 33, 38, 42, ...

最新文章

  1. 【软件】chrome设置默认字体
  2. 【Arduino】按键按下执行不同模式程序
  3. 0.0 目录-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  4. HDOJ 2041 超级楼梯
  5. pythonb超分辨成像_深度原理与框架-图像超分辨重构-tensorlayer
  6. stack vs heap:栈区分配内存快还是堆区分配内存快 ?
  7. el-tooltip位置不灵活_美团研究院:超五成生活服务业商户有灵活用工需求
  8. 使用计算机六年级,二十年后的电子计算机六年级作文
  9. 怎么把框架栏变颜色 html,如何修改easyui框架颜色,求指点_html/css_WEB-ITnose
  10. web前端 html+css+javascript网页设计实例 家乡网站制作
  11. 新手免费搭建个人网站
  12. cpu功耗排行_AMD、Intel CPU处理器性能、功耗及性价比排行(更新中)
  13. 怎么绘制等高线计算机软件,绘制等高线(LanDTM)
  14. OSPF虚链路配置及认证
  15. 你真的知道如何选择内存条吗?
  16. pc端常用电脑屏幕 媒体查询尺寸
  17. Java EE系列(九)——Java EE连接Mysql数据库(JDBC保姆级教学)
  18. 玲珑杯 1032 A-B
  19. *p++、(*p)++、*(p++)
  20. 二叉树进阶--二叉搜索树

热门文章

  1. Intel Developer Forum 2010英特尔信息技术峰会第二天小记
  2. C语言 显示数组元素的值和地址
  3. xpath提取html属性,xpath提取 html标签的文字内容
  4. SQLite Expert Pro中文版
  5. 【腾讯通服务器的消息集成解决方案】之与勤哲Excel服务器的集成
  6. 洛谷 - P1142 - 轰炸 - 计算几何
  7. .Netcore使用Session
  8. git使用(一)----git安装
  9. 网页开发中文本编辑器UEditor的使用
  10. CocoaPods版本升级