题意

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

分析

概率DP入门题。

f[i][j]为从(i,j)到(r,c)的期望消耗。从(i,j)有三种转移方法,在原地不动,向右,向下。在原地不动的概率是G[i][j][1],向右的概率为G[i][j][2],向下的概率为G[i][j][3]。但是在原地不动是不消耗能量的。(想一想如果在原地不动也消耗能量的话应该怎么解决)所以转移我们只考虑转移到右边和下边的情况。

f[i][j]=(f[i+1][j]*G[i][j][2]+f[i][j+1]*G[i][j][3]+2)/(1-G[i][j][1]).

code

 #include <cstdio>
#include <algorithm>
#include <cstring>
#include <iostream>
#include <cmath> using namespace std;
const int maxn=+;
const int eps=1e-; double G[maxn][maxn][];
double f[maxn][maxn]; int r,c;
int main(){
while(scanf("%d%d",&r,&c)!=EOF&&r&&c){
for(int i=;i<=r;i++){
for(int j=;j<=c;j++){
for(int l=;l<=;l++){
scanf("%lf",&G[i][j][l]);
}
}
}
memset(f,,sizeof(f));
for(int i=r;i>=;i--){
for(int j=c;j>=;j--){
if(i==r&&j==c)
continue;
if(fabs(-G[i][j][])<=eps)continue;
f[i][j]=(f[i][j+]*G[i][j][]+f[i+][j]*G[i][j][]+)/(-G[i][j][]);
}
} printf("%.3f\n",f[][]);
}
return ;
}

【HDU3853】LOOPS的更多相关文章

  1. 【HDU3853】LOOPS [期望DP]

    LOOPS Time Limit: 5 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description Akemi Homura is a ...

  2. 【HDOJ】【3853】LOOPS

    概率DP/数学期望 kuangbin总结中的第7题 其实跟UVA 11762 Race To 1 那道题差不多……直接推下公式,然后倒推即可 Trick:有的点可能是p1[i][j]==1……这样的点 ...

  3. 看懂SqlServer查询计划【转】

    原文链接:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html 开始 SQL Server 查找记录的方法 SQL Server ...

  4. 【Android】IntentService & HandlerThread源码解析

    一.前言 在学习Service的时候,我们一定会知道IntentService:官方文档不止一次强调,Service本身是运行在主线程中的(详见:[Android]Service),而主线程中是不适合 ...

  5. 【转载】看懂SqlServer查询计划

    看懂SqlServer查询计划 阅读目录 开始 SQL Server 查找记录的方法 SQL Server Join 方式 更具体执行过程 索引统计信息:查询计划的选择依据 优化视图查询 推荐阅读-M ...

  6. 【转】python f-string

    [转]python f-string   文章目录 1. 主要内容 1.1. 旧时代的格式化字符串 1.1.1. Option #1: %-formatting 1.1.2. 怎样使用 %-forma ...

  7. 【Python】【容器 | 迭代对象 | 迭代器 | 生成器 | 生成器表达式 | 协程 | 期物 | 任务】

    Python 的 asyncio 类似于 C++ 的 Boost.Asio. 所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知. Asyn ...

  8. 【翻译】理解 LSTM 网络

    目录 理解 LSTM 网络 递归神经网络 长期依赖性问题 LSTM 网络 LSTM 的核心想法 逐步解析 LSTM 的流程 长短期记忆的变种 结论 鸣谢 本文翻译自 Christopher Olah ...

  9. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

随机推荐

  1. nginx 获取请求头,URL参数

    获取url参数 在 ngx_lua 中访问 Nginx 内置变量 ngx.var.arg_PARAMETER 即可获得GET参数PARAMETER的内容. 在 nginx配置中,通过$arg_PARA ...

  2. Vim自动补全插件----YouCompleteMe安装与配置

    Vim自动补全插件----YouCompleteMe安装与配置 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assist X这么方便快捷的补全插件呢?以前用 ...

  3. GNU Radio安装教程: Ubuntu14.04 + uhd3.10.0 + gnuradio3.7.10.1

    1. 更新和安装依赖项 在编译安装uhd和gnuradio之前,确保已安装所需依赖项.Ubuntu系统运行: sudo apt-get update 安装UHD和GNURadio所需依赖项: On U ...

  4. Oracle导出导入表空间创建

    //备份数据库前的sqlplus命令创建数据库dmp存入目录 sqlplus /nolog conn /as sysdba SQL> create or replace directory ex ...

  5. cocos2d-js 3.0 ios平台编译打包

    原帖在http://www.cocoachina.com/bbs/read.php?tid=209356 整理到github的https://github.com/faint2death/cocos2 ...

  6. Ten Qualities of an Effective Team Player

    If you were choosing team members for a business team in your organization, who would the best team ...

  7. sprinboot+redis

    (1)pom.xml引入jar包,如下: <dependency> <groupId>org.springframework.boot</groupId> < ...

  8. java http头信息

    JAVA 从http请求头中获取Header信息: request.getHeader(),request.getHeaderNames(),request.getHeaders() Java获取Ht ...

  9. HBase之八--(2):HBase二级索引之Phoenix

    1. 介绍 Phoenix 是 Salesforce.com 开源的一个 Java 中间件,可以让开发者在Apache HBase 上执行 SQL 查询.Phoenix完全使用Java编写,代码位于 ...

  10. Java-Runoob:Java Stream、File、IO

    ylbtech-Java-Runoob:Java Stream.File.IO 1.返回顶部 1. Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出 ...