博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-4405 Aeroplane chess 期望DP
阅读量:5769 次
发布时间:2019-06-18

本文共 1090 字,大约阅读时间需要 3 分钟。

dp[i]表示第i个位置跳出去的期望天数,先构造出N+1到N+5这几个位置,然后先把dp[N-N+5]这六个位置全部赋值为0,因为这几个位置都已经出去了。

然后就是递推了

如果该点没有航班的话:

dp[x] = (1/6)*(dp[x+1] + dp[x+2] + dp[x+3] + dp[x+4] + dp[x+5] + dp[x+6]) + 1;

否则:

dp[x] = dp[link[x]]; 其中link[x]表示x连到哪一个点。

代码如下:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXN 100020#define LL long longusing namespace std;int N, M;const double EE = 1.0/6;double dp[MAXN];int link[MAXN];int main( ){ int len, a, b; while (scanf("%d %d", &N, &M) == 2) { len = N+5; memset(link, 0xff, sizeof (link)); for (int i = N; i <= len; ++i) dp[i] = 0; for (int i = 1; i <= M; ++i) { scanf("%d %d", &a, &b); link[a] = b; } for (int i = N-1; i >= 0; --i) { double temp = 0.0; if (link[i] != -1) { temp = dp[link[i]]; } else { for (int j = i + 1; j <= i + 6; ++j) { temp += EE * dp[j]; } temp += 1; } dp[i] = temp; } printf("%.4lf\n", dp[0]); } return 0;}

 

转载于:https://www.cnblogs.com/Lyush/archive/2012/09/22/2698441.html

你可能感兴趣的文章
[PHP源码阅读]array_slice和array_splice函数
查看>>
Go性能优化技巧 1/10
查看>>
Cobbler自动化部署实践
查看>>
(转)django 设置 数据库缓存
查看>>
Numpy 中文用户指南 3.1 数据类型
查看>>
【CSS学习笔记】对于IE6、IE7下display: inline-block; 的兼容问题的探讨
查看>>
另辟蹊径:云计算给企业带来的4个好处
查看>>
机器多次恶意提交攻击简单防范
查看>>
学习笔记 —— CSS 相比传统 Table 布局的特点
查看>>
SVG——图形系统
查看>>
为什么要通过w3c验证.
查看>>
Python 3.5 中的异步HTTP请求写法
查看>>
Python零基础学习笔记(十八)—— break语句和continue语句 ...
查看>>
Data Structure_图
查看>>
innodb_page_size 4k 对称
查看>>
物联网的低功耗广域网络替代方案
查看>>
移动APP及游戏推广,有预算为什么还起不了量
查看>>
阿里云服务器如何选择?
查看>>
AI通过儿童眼球运动,筛查胎儿酒精谱系障碍
查看>>
(六)Dokcerfile
查看>>