HDU-5781 ATM Mechine(概率DP)
题目大意:某个未知整数x等概率的分布在[0,k]中。每次你都可以从这个整数中减去一个任意整数y,如果x>=y,那么x=x-y,操作次数累计加1;否则,将会受到一次错误提示。当错误提示超过w次,将会对你的人生产生影响。现在,你的任务是将x逐步变为0,求最少操作次数的期望值。
题目分析:概率DP求期望。定义状态dp(k,w)表示整数分布在[0,k],错误提示次数上限为w时的最少操作次数的期望。
则dp(k,w)=min(p1*dp(k-y,w)+p2*(y-1,w-1))+1,其中p1、p2分别为k>=y、k<y的概率,p1=(k-y+1)/(k+1)、p2=y/(k+1)。因为你非常聪明,所以你每次都会二分的选择要减掉的整数y。根据题目的数据规模,你最多会操作log2(k)+1次,所以你被错误提示的次数最多log2(k)次。这样,便大大减少了状态数目,使得上述方程能够得以实现。
参考代码:
# include<bits/stdc++.h>
using namespace std;const int N=2000;
const double inf=1e9;double dp[N+5][13];void init()
{for(int i=0;i<=12;++i)dp[0][i]=0;for(int i=1;i<=N;++i)for(int j=0;j<=12;++j) dp[i][j]=inf;for(int i=1;i<=N;++i) for(int j=1;j<=12;++j)for(int k=1;k<=i;++k)dp[i][j]=min(dp[i][j],1.0*(i-k+1)/(i+1)*dp[i-k][j]+1.0*k/(i+1)*dp[k-1][j-1]+1.0);
}int main()
{init();int k,w;while(~scanf("%d%d",&k,&w)){w=min(w,12);printf("%.6lf\n",dp[k][w]);}return 0;
}
转载于:https://www.cnblogs.com/20143605--pcx/p/5743321.html
HDU-5781 ATM Mechine(概率DP)相关推荐
- HDU 5781 ATM Mechine(概率dp)
http://acm.split.hdu.edu.cn/showproblem.php?pid=5781 题意: Alice要去取钱,可是她忘记有多少钱了,只知道在[0,k]的范围之内,她每次可以选择 ...
- HDU 4035 Maze(树形概率DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4035 题意:一棵树,从结点1出发,在每个结点 i 都有3种可能:(1)回到结点1 , 概率 Ki:(2 ...
- HDU 2955 Robberies(概率DP,01背包)题解
题意:给出规定的最高被抓概率m,银行数量n,然后给出每个银行被抓概率和钱,问你不超过m最多能拿多少钱 思路:一道好像能直接01背包的题,但是有些不同.按照以往的逻辑,dp[i]都是代表i代价能拿的最高 ...
- HDU 5378 树上的概率DP Leader in Tree Land
官方题解: 可以用求概率的思想来解决这个问题.令以i号节点为根的子树为第i棵子树,设这颗子树恰好有sz[i]个点.那么第i个点是第i棵子树最大值的概率为1/sz[i],不是最大值的概率为(sz[i]- ...
- HDU 3853 LOOPS(概率DP)
题目链接:点击打开链接 题意:求从(1, 1)点走到(n, m)点的花费能量的期望, 每次决策消耗2点能量. 每次可以原地不动或者向右或者向下, 分别有个概率. 思路:运用全概率期望公式, d[i][ ...
- HDU 4418 高斯消元法求概率DP
把两种状态化成2*n-2的一条线上的一种状态即可.很容易想到. 高斯列主元法,不知为什么WA.要上课了,不玩了...逃了一次课呢.. #include <iostream> #includ ...
- hdu-5781 ATM Mechine(dp+概率期望)
题目链接: ATM Mechine Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- HDU 1493 QQpet exploratory park(概率DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1493 题意:一排有61个格子标号0-60.其中停在5,12, 22, 29, 33, 38, 42, ...
- HDU 5001 概率DP || 记忆化搜索
2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP 測 ...
- hdu 3853 LOOPS 概率DP
简单的概率DP入门题 代码如下: 1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 ...
最新文章
- 常用数据库优化方案(三)
- 【转】ABP源码分析十七:DTO 自动校验的实现
- 技术总结:图算法、开源工具及其在工业界的应用场景概述
- Spring Boot 页面国际化
- 1.3 编程基础之算术表达式与顺序执行 08 温度表达转化
- Typescript 学习笔记一:介绍、安装、编译
- android 自定义emoji表情包,emoji表情制作
- el-dialog可拖拽
- 《机械制造技术基础》常见的问题
- 厘米和磅的转换程序python_在Python中如何将磅转换成公斤
- translate()方法
- 国外android大神博客,Android手机浏览器(国外篇)横向对比评测
- 胆囊结石的危害你了解多少?
- TensorRT:NvInfer.h-上篇
- XAMPP的MySQL配置
- Echarts实现3d 地图实现飞线效果
- 从“女记者”到“地产一姐”,龙湖吴亚军的“三不”人生
- Python开发游戏的正确姿势
- 如何在Windows10系统中修改.jar文件的默认应用
- 可旋转的汽车3D模型效果的实现
热门文章
- 2011北理机试题——层次关系
- 【浙江大学PAT真题练习乙级】1002 写出这个数(20分) 真题解析
- BZOJ1468Tree——点分治
- [转]CString类型的头文件、CString的输出、CString的常用用法
- Outlook2016中如何实现自动密送
- ORACLE与.NET类型对应关系(转)
- C 语言中的指针和内存泄漏
- 博客园 使用锚和书签制作目录
- TensorRTSamplePython[end_to_end_tensorflow_mnist]
- docker 部署 zookeeper+kafka 集群