http://acm.hdu.edu.cn/showproblem.php?pid=3853

膜猴烧酒madoka

讲定义为dp[i][j] 位置为ij的魔法值期望,可以发现dp[i][j] = dp[i][j]*p1[i][j]+dp[i][j+1]*p2[i][j]+dp[i+1][j]*p3[i][j]+2

最后可以表示为

dp[x][y] = 1.0/(-p[x][y][])*(p[x][y][]*dp[x][y+]+p[x][y][]*dp[x+][y]+2.0);

递推的时候从右下角开始,向左上角递推。

有一个坑是p1=1 时,会出错,所以要特判一下。直接跳过。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath> using namespace std; int R,C;
double dp[][],p[][][]; int main()
{
while(~scanf("%d%d",&R,&C))
{
for(int i=;i<=R;i++)
{
for(int j=;j<=C;j++)
{
scanf("%lf%lf%lf",&p[i][j][],&p[i][j][],&p[i][j][]);
}
} memset(dp,,sizeof dp); for(int x=R;x>=;x--)
{
for(int y=C;y>=;y--)
{
if(x==R&&y==C) continue;
if(abs(p[x][y][]-1.0)<(1e-)) continue;
dp[x][y] = 1.0/(-p[x][y][])*(p[x][y][]*dp[x][y+]+p[x][y][]*dp[x+][y]+2.0);
}
} /*
for(int i=1;i<=R;i++)
{
for(int j=1;j<=C;j++)
{
printf("%lf ",dp[i][j]);
}
printf("\n");
}
*/
printf("%.3lf\n",dp[][]);
}
}

睡前小dp-hdu3853-概率dp的更多相关文章

  1. 睡前小dp-poj2096-概率dp

    http://poj.org/problem?id=2096 有n种分类,s种子系统,相互独立.每天发现一个bug等概率的属于n种分类和s种子系统. 要使发现的bug完全覆盖n种分类,s种分类,求天数 ...

  2. 睡前小dp-poj3254-状压dp入门

    http://poj.org/problem?id=3254 从这里学的 http://blog.csdn.net/accry/article/details/6607703 状压dp的入门题.一片N ...

  3. 睡前小dp-poj1276-多重背包+二进制优化

    http://poj.org/problem?id=1276 简单的多重背包,不过需要优化一下才能过.网上还有暴力的做法. 二进制优化在背包九讲里讲的比较清楚.对于多重背包的每一件物品,使用二进制的形 ...

  4. 【BZOJ 3652】大新闻 数位dp+期望概率dp

    并不难,只是和期望概率dp结合了一下.稍作推断就可以发现加密与不加密是两个互相独立的问题,这个时候我们分开算就好了.对于加密,我们按位统计和就好了;对于不加密,我们先假设所有数都找到了他能找到的最好的 ...

  5. 睡前小dp-codeforce414B-dp+一点点想法

    http://codeforces.com/problemset/problem/414/B 定义一个串为好的串当这个串符合 di|di+1,1<i<k-1 给定一个n为串中元素的取值范围 ...

  6. HDU3853 概率DP

    LOOPS   Homura wants to help her friend Madoka save the world. But because of the plot of the Boss I ...

  7. Codeforces Beta Round #16 E. Fish (状压dp)(概率dp)

    Codeforces Beta Round #16 (Div. 2 Only) E. Fish 题目链接:## 点击打开链接 题意: 有 \(n\) 条鱼,每两条鱼相遇都会有其中一只吃掉对方,现在给你 ...

  8. bzoj1076 奖励关(概率dp)(状态压缩)

    BZOJ 1076 [SCOI2008]奖励关 Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须 ...

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

    题目大意: 一共有61个位置,标记为0~60.其中有10个重要位置,分别为:5, 12, 22, 29, 33, 38, 42, 46, 50 and 55. 有一个筛子,一共6个面,标有1~6.摇到 ...

随机推荐

  1. jdk8+Mybatis3.5.0+Mysql读取LongBlob失败

    问题:在mysql中存储base64,因为太长,基本就是几百K,所以用longBlob 描述:在mysql中,LongBlob.blob算是二进制流文件了,所以用普通的数据格式是不行的,这里用Type ...

  2. Luogu P3990 [SHOI2013]超级跳马

    这道题还是一道比较不可做的矩阵题 首先我们先YY一个递推的算法:令f[i][j]表示走到第i行第j列时的方案数,那么有以下转移: f[i][j]=f[i-1][j-2*k+1]+f[i+1][j-2* ...

  3. 给 MSYS2 添加中科大的源

    最近一段时间不知怎么的,使用默认的 MSYS2 源升级软件或是安装新软件的特别的慢.所以就翻了翻国内的几个开源软件的镜像库,发现中科大的库里就有 MSYS2.所以就研究了一下,给 MSYS2 添加了中 ...

  4. html table隐藏列

    隐藏table表的第一列,适合显示信息,隐藏ID主键. <html> <head> <meta http-equiv="content-type" c ...

  5. HNOI2019 多边形 polygon

    HNOI2019 多边形 polygon https://www.luogu.org/problemnew/show/P5288 这题镪啊... 首先堆结论: 显然终止状态一定是所有边都连向n了 根据 ...

  6. ML.NET 示例:二元分类之信用卡欺诈检测

    写在前面 准备近期将微软的machinelearning-samples翻译成中文,水平有限,如有错漏,请大家多多指正. 如果有朋友对此感兴趣,可以加入我:https://github.com/fei ...

  7. linux监控文件夹内的文件数量

    开发的时候遇到一个问题,服务器一旦重启,项目生成的文件就丢失了,感觉很莫名其妙..一开始猜测是文件流没有关闭,检查了代码,感觉没毛病.于是先看看是关机丢失了文件还是开机被删除了.下面的脚本每秒执行一次 ...

  8. Awesome Python,Python的框架集合

    Awesome Python A curated list of awesome Python frameworks, libraries and software. Inspired by awes ...

  9. asp.net mvc接收安卓post的json字符串

    筛选器: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syst ...

  10. Ionic 入门与实战之第一章:Ionic 介绍与相关学习资源

    原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第一章,主要对 Ionic 的概念.发展历程.适配的移动平台等知识进行了介绍,并分享了 Ionic 相关的学习资源. 原文发表于我的技 ...