HDU4405 Aeroplane chess (概率DP,转移)
http://acm.hdu.edu.cn/showproblem.php?pid=4405
题意:在一个1×n的格子上掷色子,从0点出发,掷了多少前进几步,同时有些格点直接相连,即若a,b相连,当落到a点时直接飞向b点。求走到n或超出n期望掷色子次数
分析:简单的题目,拿来入门很不错:
如果没有飞机的线 ,这题就是直接 dp[i]+=dp[i+x]/6 +1 了 ; 当前的期望由子期望相加 ; 那航线怎么考虑呢?一开始我以为是加上可以走到点的dp[v] ,可是仔细推敲这是不对了,在注意到航线的转移是不需要价值的,所以直接dp[u]=dp[v] 就好;为什么呢?很简单,例如: 7->8 , 因为8是可以直接由7来的,那8就继承7的期望
- #include<bits/stdc++.h>
- using namespace std;
- vector<int>G[];
- bool vis[];
- double dp[];
- int main()
- {
- int n,m;
- while(~scanf("%d%d",&n,&m))
- {
- if(n==&&m==) break;
- for(int i= ; i<=n ; i++)
- G[i].clear();
- for(int i= ; i<m ; i++)
- {
- int u,v;scanf("%d%d",&u,&v);
- G[v].push_back(u);
- }
- memset(dp,,sizeof(dp));
- memset(vis,,sizeof(vis));
- for(int i= ; i<G[n].size() ; i++)
- {
- int v=G[n][i];
- dp[v]=;
- vis[v]=;
- }
- for(int i=n- ; i>= ; i--)
- {
- if(vis[i]==){
- for(int x= ; x<= ; x++)
- {
- dp[i]+=dp[i+x]/6.0;
- }
- dp[i]++;}
- for(int j= ; j<G[i].size() ; j++)
- {
- int v=G[i][j];
- dp[v]=dp[i];
- vis[v]=;
- }
- }
- printf("%.4lf\n",dp[]);
- }
- }
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- #include <vector>
- using namespace std;
- #define N 100010
- double dp[N];
- int nxt[N];
- int main()
- {
- int n, m;
- while(~scanf("%d%d", &n, &m), n+m) {
- memset(nxt, -, sizeof(nxt));
- for(int i = ; i < m; i++) {
- int u, v;
- scanf("%d%d", &u, &v);
- nxt[u] = v;
- }
- memset(dp, , sizeof(dp));
- double dec = (double) / ;
- for(int i = n - ; i >= ; i--) {
- if(nxt[i] != -) {
- dp[i] = dp[nxt[i]]; //如果可以飞,就直接把上一步的值赋给它
- continue;
- }
- for(int j = ; j <= ; j++) {
- if(i + j <= n) {
- dp[i] += dp[i + j] * dec; //不能飞的话,就掷骰子为1-6的概率都为1/6,递推
- }
- }
- dp[i]++; //走到下一步要+1
- }
- printf("%.4f\n", dp[]);
- }
- return ;
- }
HDU4405 Aeroplane chess (概率DP,转移)的更多相关文章
- [hdu4405]Aeroplane chess(概率dp)
题意:某人掷骰子,数轴上前进相应的步数,会有瞬移的情况,求从0到N所需要的期望投掷次数. 解题关键:期望dp的套路解法,一个状态可以转化为6个状态,则该状态的期望,可以由6个状态转化而来.再加上两个状 ...
- [ACM] hdu 4405 Aeroplane chess (概率DP)
Aeroplane chess Problem Description Hzz loves aeroplane chess very much. The chess map contains N+1 ...
- HDU 4405 Aeroplane chess (概率DP)
题意:你从0开始,要跳到 n 这个位置,如果当前位置是一个飞行点,那么可以跳过去,要不然就只能掷骰子,问你要掷的次数数学期望,到达或者超过n. 析:概率DP,dp[i] 表示从 i 这个位置到达 n ...
- HDU4405 Aeroplane chess(期望dp)
题意 抄袭自https://www.cnblogs.com/Paul-Guderian/p/7624039.html 正在玩飞行棋.输入n,m表示飞行棋有n个格子,有m个飞行点,然后输入m对u,v表示 ...
- HDU 4405 Aeroplane chess 概率DP 难度:0
http://acm.hdu.edu.cn/showproblem.php?pid=4405 明显,有飞机的时候不需要考虑骰子,一定是乘飞机更优 设E[i]为分数为i时还需要走的步数期望,j为某个可能 ...
- HDU 4405 Aeroplane chess(概率dp,数学期望)
题目 http://kicd.blog.163.com/blog/static/126961911200910168335852/ 根据里面的例子,就可以很简单的写出来了,虽然我现在还是不是很理解为什 ...
- 【HDU4405】Aeroplane chess [期望DP]
Aeroplane chess Time Limit: 1 Sec Memory Limit: 32 MB[Submit][Stataus][Discuss] Description Hzz lov ...
- hdu4405 Aeroplane chess
Aeroplane chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- hdu 4405Aeroplane chess(概率DP)
Aeroplane chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
随机推荐
- JAVA AOP面向切面编程与动态代理
1.静态代理和动态代理的概念: 在我的另一篇博文:Java 静态代理和动态代理 中有讲到,这里就不做赘述了. JDK动态代理它的好处理是可以为我们生成任何一个接口的代理类,并将需要增强的方法织入到 ...
- 安全运维 - Windows系统维护
Windows系统加固 账户管理和啊认证授权 日志配置操作 IP协议安全配置:启用SYN攻击保护 文件权限 服务安全 安全选项:启动安全选项.禁用未登录前关机 其他安全配置: 防病毒管理.设置屏幕保护 ...
- SpringBoot(九) -- SpringBoot与数据访问
一.简介 对于数据访问层,无论是SQL还是NOSQL,Spring Boot默认采用整合Spring Data的方式进行统一处理,添加大量自动配置,屏蔽了很多设置.引入各种xxxTemplate,xx ...
- 第九届蓝桥杯A组第三题: 乘积尾零
标题:乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6 ...
- 小白学Python(13)——pyecharts 绘制 柱状图/条形图 Bar
Bar-基本示例 from example.commons import Faker from pyecharts import options as opts from pyecharts.char ...
- Elasticsearch7.X 入门学习第八课笔记-----索引模板和动态模板
原文:Elasticsearch7.X 入门学习第八课笔记-----索引模板和动态模板 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接: ...
- JQ的异步文件上传
一,view代码 <form role="form"> <div class="form-group"> <label for=& ...
- c#中decimal的去0显示
在近来的开发中,遇到到了decimal中显示0的问题,搞了很久才搞好了,现在就简单介绍一下其中一小部分,其他的网上很上很多 public static string DecimalToString(d ...
- [转]使用flask实现mock server
什么是mock server: http://www.testclass.net/interface/mock_server 使用flask 实现 mock server : http://www. ...
- python __str__repr__ 区别
__str__ __repr__ 两个内置函数都是调试常用的函数, 对象直接调用时会调用 __repr__的内容, __str__需要print一下对象才可以 两个函数的内容有时会写成相同内容 _ ...