题目大意:有编号为0-n的格子,从0开始,扔骰子扔到几就走几格。有m个瞬移点,每个点可以从格x直接飞到格y,若瞬移到另一个瞬移点可以继续瞬移。求到达格n的期望扔骰子次数。

题解:期望DP入门好题。网上神犇们都说,“经验表明,一般情况下,求期望的题从后往前推。”本蒟蒻一开始不明白,谁给你的权利一定要从后往前啊!于是我就写了这样一个式子:

E(i)——到格i期望,E(i)=i是某个瞬移目标点?(E(x),x指瞬移出发点),否则E(i-1)*1/6+E(i-2)*1/6+...+E(i-6)*1/6+1,注意最后把“又走了一步”加上。标准全期望公式。于是高高兴兴地通过了第一组数据。然后测试第二组。。。。。。那么问题究竟出在哪里呢?

问题一:若i是瞬移目标点,在平均的情况下,凭什么一定认为到达i的情况和到达i对应的出发点的情况完全一样?显然

在上图情况中,0到2的所有方法并不对应到5的所有方法。如果按原先的思路,那么0->3->5等的情况将被无情地忽略。

问题二:i格走到后面1-6格的概率为1/6,不!能!认!为!i格前1-6格走到i的概率为1/6。虽然在m=0的时候这两者碰巧等价了,但加入瞬移点后,到达一个格的方法多种多样,概率当然不尽相同,而一个格向前运行的概率是永恒的。

通往目标的路变幻莫测,而我们向前发展的步伐是永恒的。

言归正传,我们只能从目标退回来。E(i)——i格到n的期望,E(i)=E(i+1)*1/6+...+E(i+6)*1/6+1,边界是E(n),严格的,E(n),E(n+1),...,E(n+5)=0。E(0)即为所求。至于瞬移出发点,E(i)=E(go(i)),go(i)指瞬移到达点。虽然看起来跟之前差不多,但这样做无可厚非。

代码:

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
using namespace std; int n,m;
#define maxn 100011
int go[maxn];double E[maxn];
#define eof 1e-9
int main()
{
while (scanf("%d%d",&n,&m) && (n || m))
{
memset(go,,sizeof(go));
for (int i=;i<=m;i++)
{
int x,y;scanf("%d%d",&x,&y);
go[x]=y;
}
memset(E,,sizeof(E));
for (int i=n-;i>=;i--)
{
if (!go[i]) {for (int j=;j<=;j++) E[i]+=E[j+i]/6.0;E[i]+=;}
else E[i]=E[go[i]];
}
printf("%.4lf\n",E[]);
}
return ;
}

hdu4405:Aeroplane chess的更多相关文章

  1. HDU 4405:Aeroplane chess(概率DP入门)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=4405 Aeroplane chess Problem Description   Hzz loves ...

  2. 【HDU4405】Aeroplane chess [期望DP]

    Aeroplane chess Time Limit: 1 Sec  Memory Limit: 32 MB[Submit][Stataus][Discuss] Description Hzz lov ...

  3. HDU 4405: Aeroplane chess

    类型:概率DP 题意:一条直线下飞行棋,色子六个面等概率.同时存在一些飞机航线,到了某个点可以直接飞到后面的另一个点,可以连飞,保证一个点至多一条航线.求到达或者超过终点 所需要 掷色子的期望次数. ...

  4. HDU-4405 Aeroplane chess

    http://acm.hdu.edu.cn/showproblem.php?pid=4405 看了一下这个博客http://kicd.blog.163.com/blog/static/12696191 ...

  5. 刷题总结——Aeroplane chess(hdu4405)

    题目: Problem Description Hzz loves aeroplane chess very much. The chess map contains N+1 grids labele ...

  6. hdu4405 Aeroplane chess

    Aeroplane chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  7. hdu 4405 Aeroplane chess(简单概率dp 求期望)

    Aeroplane chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  8. 【HDOJ】【4405】Aeroplane chess飞行棋

    概率DP/数学期望 kuangbin总结中的第4题 啊还是求期望嘛……(话说Aeroplane chess这个翻译怎么有种chinglish的赶脚……) 好像有点感觉了…… 首先不考虑直飞的情况: f ...

  9. hdu 4405 Aeroplane chess (概率DP)

    Aeroplane chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

随机推荐

  1. DOCTYPE详解

    什么是DTD? SGML引入了文档类型的概念,并由此引入了文档类型定义(Document Type Definition: DTD).文档类型定义 (DTD) 实际上就是一套关于标记符的语法规则,它包 ...

  2. SQL数据库学习,常用语句查询大全

    数据库学习 sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数 ...

  3. 不全屏显示、手柄不居中的SlidingDrawer

    SlidingDrawer是一个滑动式抽屉,通过点击或拖拽手柄(handle)来显示或隐藏内容(content). 看了很多关于SlidingDrawer的例子,但基本都是全屏显示,并且手柄居中的.我 ...

  4. (转)Synopsys工具简介

    DC Ultra--Design Compiler的最高版本 在Synopsys软件中完整的综合方案的核心是DC UltraTM,对所有设计而言它也是最好级别的综合平台.DC Ultra添加了全面的数 ...

  5. nginx 访问localhost老是下载文件不能打开网页什么情况?

    nginx打开网页直接下载文件的问题 nginx sites-available文件里的default已经修改过root 路径了. 但是访问localhost的时候总是直接下载网页而不是打开网址 很奇 ...

  6. 浅析 innerHTML 性能优化的原理

    浅析 innerHTML 性能优化的原理 博客分类: web前端 IEAndroidwebkit浏览器UI  昨天看了 lveyo老兄的"innerHTML的性能问题" 一文 ht ...

  7. 机器学习在SAP Cloud for Customer中的应用

    关于机器学习这个话题,我相信我这个公众号1500多位关注者里,一定有很多朋友的水平比Jerry高得多.如果您看过我以前两篇文章,您就会发现,我对机器学习仅仅停留在会使用API的层面上. 使用Java程 ...

  8. CocosCreator工程内的命名

    命名结构总体的命名结构遵循以下格式 前缀-内容-尾缀 - 前缀:用来定义node的属性- 内容:node的名字- 尾缀:序列或状态1231. 前缀说明:在开始的时候定义/声明这个节点的属性前缀可以是一 ...

  9. windows下安装python

    1. 进入python官网   https://www.python.org/downloads/windows/ 2.根据我们的电脑位数选择版本,尽量选择  Download Windows x86 ...

  10. 【转】密码学 :CSP的概念

    转:[密码学]CSP的概念 CSP加密服务提供者(Cryptographic Service Provider)具有一下几个特点: CSP是真正执行密码运算的独立模块 物理上一个CSP由两部分组成:一 ...