题意:迷宫是一个R*C的布局,每个格子中给出停留在原地,往右走一个,往下走一格的概率,起点在(1,1),终点在(R,C),每走一格消耗两点能量,求出最后所需要的能量期望
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
typedef long long ll;
const int inf=0x3f3f3f3f;
#define For(i,a,b) for(int i=a;i<=b;i++)
#define FFor(i,a,b) for(int i=a;i>=b;i--)
template <class T> inline T min(T a,T b,T c)
{return min(min(a,b),c);
}
template <class T> inline T max(T a,T b,T c)
{return max(max(a,b),c);
}
template <class T> inline T min(T a,T b,T c,T d)
{return min(min(a,b),min(c,d));
}
template <class T> inline T max(T a,T b,T c,T d)
{return max(max(a,b),max(c,d));
}
using namespace std;
const int N=1e3+5;
const double eps=1e-9;
//***********name**************
double f[N][N];
int R,C;
double p0[N][N],p1[N][N],p2[N][N];//***********function**********//******************************
int main()
{
//    freopen("test.txt","r",stdin);
while(~scanf("%d%d",&R,&C)){
memset(f,0,sizeof(f));For(i,1,R)For(j,1,C)scanf("%lf%lf%lf",&p0[i][j],&p1[i][j+1],&p2[i+1][j]);f[R][C]=0;FFor(i,R,1)FFor(j,C,1){if(i==R&&j==C)continue;if(fabs(p0[i][j]-1)<=eps)continue;f[i][j]=(f[i][j+1]*p1[i][j+1]+f[i+1][j]*p2[i+1][j]+2)/(1-p0[i][j]);}printf("%.3f\n",f[1][1]);
}return 0;
}

转载于:https://www.cnblogs.com/planche/p/9062859.html

HDU3853:LOOPS相关推荐

  1. 插头DP 概率DP / 期望DP

    插头DP && 概率DP / 期望DP 写在前面: 插头DP P5056 [模板]插头dp 手写哈希表的方法: 拉链法的代码如下: 开放寻址法的代码如下: 接下来是这道题的代码实现: ...

  2. Code Hunt SECTOR2(Loops) SECTOR3(Loops2)

    2019独角兽企业重金招聘Python工程师标准>>> 1.关于本博客的说明 Code Hunt 是我从CSDN上的一篇文章中无意间看到的:微软研究院正式发布编程学习游戏Code H ...

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

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

  4. Python编程基础:第十二节 嵌套循环Nested Loops

    第十二节 嵌套循环Nested Loops 前言 实践 前言 嵌套循环通常包括内循环与外循环,外循环执行一次,内循环执行一轮.通常情况下,我们将嵌套循环用于多维数组的遍历等场景. 实践 我们以打印一个 ...

  5. Python编程基础:第十一节 for循环For Loops

    第十一节 for循环For Loops 前言 实践 前言 比起while循环,我们可能对for循环更加熟悉.在for循环中我们可以更方便地控制循环次数以及终止条件.本节中我们以倒计时为例介绍for循环 ...

  6. Python编程基础:第十节 while循环While Loops

    第十节 while循环While Loops 前言 实践 前言 如果你需要计算机反复执行某个代码段,你就需要用到while循环,while循环的结构如下: while 判断1:代码段1 当判断1为Tr ...

  7. 洛谷 P2738 [USACO4.1]篱笆回路Fence Loops

    P2738 [USACO4.1]篱笆回路Fence Loops 题目描述 农夫布朗的牧场上的篱笆已经失去控制了.它们分成了1~200英尺长的线段.只有在线段的端点处才能连接两个线段,有时给定的一个端点 ...

  8. C++11中range-based for loops中与的区别

    for(auto i : c) 一般用for(auto i : c)就是一个正常的拷贝,如果是一个类的话,会调用复制构造函数. vector<int> c = {1, 3, 5, 7, 9 ...

  9. SqlServer 算法 :Nested Loops Join(嵌套连接)

    自测试示例, 两表 都没有 建立索引 情况:  start 1.  sql 语句通过 nested loop 连接, 2. 默认 hash join //end-------------------- ...

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

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

最新文章

  1. iOS 关于pods-frameworks.sh:permission denied报错的解决
  2. 要不要跳槽,看完就懂了
  3. 计算机组成原理的中央控制器,计算机组成原理第六章中央控制器(6-7,8,9).pdf
  4. redis添加认证密码
  5. 解决 json_encode 中文乱码
  6. linux系统下安装qgis,深度操作系统 deepin 15.11安装 QGIS 3.4
  7. for循环中++i 和 i++ 的区别
  8. R语言(一):Mac系统M1芯片下安装R语言和RStudio教程,R语言入门
  9. linux打开dwg文件怎么打开方式,dwg文件扩展名,dwg文件怎么打开?
  10. Python_Pandas_分组汇总数据和创建数据透视表
  11. 微信图片怎么添加竖排文字_微信字体竖排怎么设置 微信怎样编辑竖排文字
  12. iOS 苹果登录(第三方登录)
  13. Python 获取本周、上周、下周周一、周天的日期
  14. python获取字典第一个元素,从字典中获取第一个元素
  15. 无声交流的读心术,正在剥夺我们的沟通能力
  16. LeetCode知识点总结 - 1413
  17. 千万 PV,百万PV什么意思?
  18. matlab注册表版本号,通过注册表发现Windows版本信息
  19. 元旦节前后,Python兼职接单的小高潮来了
  20. Google 地图下载工具 (C#)

热门文章

  1. Linux之常用操作命令总结三
  2. 守卫数据中心命门的胡桃夹子-特权账号管理平台
  3. 颠覆传统网络管理 Aruba新一代网络解决方案重磅呈现
  4. 获取单个数据库的邮箱数量
  5. 忘记mysql密码 重置密码
  6. MMIO与PIO区别
  7. linux性能监测工具
  8. struts2 表单 get 乱码问题/apache+tomcat+jk 乱码问题
  9. 非关系数据库-NoSQL探讨
  10. AGC022E Median Replace