题意:有一个迷宫r行m列,开始点在[1,1]现在要走到[r,c]
对于在点[x,y]可以打开一扇门走到[x+1,y]或者[x,y+1]
消耗2点魔力
问平均消耗多少魔力能走到[r,c]
分析:假设dp[i][j]表示在点[i,j]到达[r,c]所需要消耗的平均魔力(期望)
则从dp[i][j]可以到达:
dp[i][j],dp[i+1,j],dp[i][j+1];
对应概率分别为:
p1,p2,p3
由E(aA+bB+cC...)=aEA+bEB+cEC+...//包含状态A,B,C的期望可以分解子期望求解
得到dp[i][j]=p1*dp[i][j]+p2*dp[i+1][j]+p3*dp[i][j+1]+2;

#include<cstdio>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include <iostream>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <set>
#define INF 0x3f3f3f3f
#define maxn 500100
#define mem(a) memset(a,0,sizeof(a))
using namespace std;
typedef long long ll;
double dp[1010][1010],p[1010][1010][3];
int main()
{int n,m;while(scanf("%d%d",&n,&m) != EOF){for(int i = 0; i < n; i++)for(int j = 0; j < m; j++)scanf("%lf%lf%lf",&p[i][j][0],&p[i][j][1],&p[i][j][2]);mem(dp);for(int i = n-1; i >= 0; i--)for(int j = m-1; j >= 0; j--){if(i == m-1 && j == n-1)continue;if(p[i][j][0] == 1.0)continue;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[0][0]);}return 0;
}

hdu 3853 LOOPS相关推荐

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

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

  2. hdu 3853 LOOPS 概率DP

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

  3. HDU 3853 LOOPS(概率DP)

    题目链接:点击打开链接 题意:求从(1, 1)点走到(n, m)点的花费能量的期望, 每次决策消耗2点能量. 每次可以原地不动或者向右或者向下, 分别有个概率. 思路:运用全概率期望公式, d[i][ ...

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

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

  5. LOOPS HDU - 3853 dp求期望值

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

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

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

  7. HDU - 3853 Loop [Maho shoujo] [概率DP]

    概率题一般要倒推 f[i][j]表示在(i, j)时到(r, c)的期望步数 考虑在位置(i, j) 时 f[i][j] = f[i][j] * p[i][j][1] + f[i][j + 1] * ...

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

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

  9. 动态规划总结与题目分类

    源博客链接:http://blog.csdn.net/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少 ...

最新文章

  1. Linux下对文件的操作及添加新用户
  2. 物理综合:关于UDSM后端设计总结
  3. C#实现人脸识别【Users】
  4. 4.2路由算法与路由协议概述
  5. UnhookWindowsHookEx
  6. PHP学习(语言结构语句)
  7. 直播平台搭建与相关资料
  8. linux c++开发_Linux/Windows下进行C/C++开发的差异
  9. div css左边固定右边自适应布局
  10. Ruby On Rails --环境搭建之回眸一笑
  11. c语言判断输入类型是否为指定类型?
  12. Zabbix通过自动发现监控端口
  13. vite:15个插件推荐
  14. cblas_sgemm和cublasSgemm参数详解
  15. Error 1924.Could not update environment variable FNL_LICENSE_NUMBER.  Verify that you have sufficien
  16. 推荐几个英语学习网站
  17. word2vec中计算两个词的距离或者相似程度。
  18. mysql存储过程工作日判断_Oracle存储过程根据指定日期返回(N个)工作日的时间...
  19. orcad capture学习笔记---3.DRC规则设置及检查
  20. 八数码难题的多种解法

热门文章

  1. IDEA提交git代码,配置文件乱码
  2. Android App专项测试-压力测试篇
  3. 人物动作姿势怎么画?
  4. 大数据基础(三):​​​​​​​​​​​​​​​​​​​​​大数据应用场景
  5. 蓝桥杯C/C++程序设计 往届真题汇总(基础篇)
  6. 连接远程电脑主机,pycharm远程调试代码方法
  7. 数位动态规划:Windy数
  8. 每个计算机主机只有一个硬盘吗,电脑多加一个硬盘需要重装系统吗? 电脑如何新增加一块硬盘...
  9. pfv和php,【Retina China 2019】工欲善其事必先利其器——影像学在眼底病中的应用与发展...
  10. PPT无法打开,打开后总是修复的解决方法