LOOPS

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3853

DP

设dp[i][j]为(i,j)到终点期望的使用魔力值,mp[i][j][k]为(i,j)到三个方向的概率。

那么,dp[i][j]=(2+dp[i][j+1])*mp[i][j][1]+(2+dp[i+1][j])*mp[i][j][2]+(2+dp[i][j])*mp[i][j][0],

移向得,dp[i][j]*(1-mp[i][j][0])=(2+dp[i][j+1])*mp[i][j][1]+(2+dp[i+1][j])*mp[i][j][2]+2*mp[i][j][0],

化简得,dp[i][j]=(2+dp[i][j+1]*mp[i][j][1]+dp[i+1][j]*mp[i][j][2])/(1-mp[i][j][0]).

注意当mp[i][j][0]==1时,此时将陷入LOOPS.

代码如下:

 #include<cstdio>
#include<cstring>
#include<cmath>
#define EPS 1e-8
#define N 1005
#define INF 1000005
using namespace std;
int n,m;
double mp[N][N][];
double dp[N][N];
int main(void){
while(~scanf("%d%d",&n,&m)){
memset(dp,,sizeof(dp));
for(int i=;i<n;++i)
for(int j=;j<m;++j)
for(int k=;k<;++k)
scanf("%lf",&mp[i][j][k]);
for(int i=n-;i>=;--i)
for(int j=m-;j>=;--j){
if(i==n-&&j==m-)continue;
if(fabs(-mp[i][j][])<EPS)dp[i][j]=INF;
else dp[i][j]=(+dp[i][j+]*mp[i][j][]+dp[i+][j]*mp[i][j][])/(-mp[i][j][]);
}
printf("%.3lf\n",dp[][]);
}
}

LOOPS的更多相关文章

  1. Nested Loops join时显示no join predicate原因分析以及解决办法

    本文出处:http://www.cnblogs.com/wy123/p/6238844.html 最近遇到一个存储过程在某些特殊的情况下,效率极其低效, 至于底下到什么程度我现在都没有一个确切的数据, ...

  2. SQL Tuning 基础概述06 - 表的关联方式:Nested Loops Join,Merge Sort Join & Hash Join

    nested loops join(嵌套循环)   驱动表返回几条结果集,被驱动表访问多少次,有驱动顺序,无须排序,无任何限制. 驱动表限制条件有索引,被驱动表连接条件有索引. hints:use_n ...

  3. track message forwards, avoiding request loops, and identifying the protocol capabilities of all senders along the request/response chain

    https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html The TRACE method is used to invoke a remote, ...

  4. Sort merge join、Nested loops、Hash join(三种连接类型)

    目前为止,典型的连接类型有3种: Sort merge join(SMJ排序-合并连接):首先生产driving table需要的数据,然后对这些数据按照连接操作关联列进行排序:然后生产probed ...

  5. HDOJ 3853 LOOPS

    水概率DP.... LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others ...

  6. IOS- Run Loops

    Run Loops Run loops是线程相关的的基础框架的一部分.一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件.使用run loop的目的是让你的线程在有工作的时 ...

  7. HDU 3853:LOOPS(概率DP)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=3853 LOOPS Problem Description   Akemi Homura is a M ...

  8. LOOPS(HDU 3853)

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

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

    P2738 [USACO4.1]篱笆回路Fence Loops 11通过 21提交 题目提供者该用户不存在 标签USACO 难度提高+/省选- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 ...

  10. Altium Designer 特定网络取消 remove loops

    在使用Altium Designer时,在PCB Editor 里面可以设定是否需要Automatically remove Loops,但是这个设置是全局的,在设计时难免会遇到对大部分网络是需要删除 ...

随机推荐

  1. [ios2]ASIHTTPReques 清除所有持久连接

    http://www.winddisk.com/2012/08/27/iphone_screenlock_network_disconnection/ + (void)clearPersistentC ...

  2. shapeless官方指南翻译写在前面

    目录 前言 Shapeless简介 The Type Astronaut's Guide to Shapeless简介 总结 一.前言        在我的2016,感恩.乐观.努力一文中,说2017 ...

  3. RocketMQ源码 — 二、 NameServer

    NameServer 作用:Producer和Consumer获取Broker的地址 目的:解耦Broker和Producer.Consumer 原理:使用netty作为通信工具,监听指定端口,如果是 ...

  4. XAF-UI元素概述

    XAF框架会根据业务模型自动生成默认的UI.一般来说,您可以使用默认的用户界面,但如果它不符合您的要求,您可以自定义它.要做到这一点,你应该知道UI是由哪些元素组成的,以及你可以自定义什么元素,以实现 ...

  5. python 函数简介之三

    1. 非固定个数的实参----参数组,* args ,其结果将以元组的形式呈现出来 def func(*args): print(args) func(1,2,3,4,5) #第一种调用方式, 多个实 ...

  6. js 禁止复制粘贴全选

    // 取消右键菜单document.oncontextmenu = function(e){ var t = e || window.event; var elm = t.target || t.sr ...

  7. select的onchange事件获取不了option的value

    一,select的onchange事件获取不了option的value是当你使用JQ($("#xxx").val())方法的获取的值一直提示undefined 二,解决方法: va ...

  8. python中的编码声明

    python中的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单 #!/usr/bin/python 相当于写死了 python 路径(是告诉OS执行这个py时,调 ...

  9. python学习-基础语法

    字符编码 1.python 2.x 默认是ASCII 编码 不支持中文,所以在代码有中文的时候 需要在文件最上一行加上#coding=utf-8.python 3.x则没有该问题. 变量命名规则 1. ...

  10. Linked List - leetcode

    138. Copy List with Random Pointer //不从head走 前面加一个dummy node 从dummy走先连head 只需记录当前节点 //这样就不需要考虑是先new ...