UVa 10900 - So you want to be a 2n-aire?(期望DP)
链接:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1841
题意:
在一个电视娱乐节目中,你一开始有1元钱。主持人会问你n个问题,每次你听到问题后有两个选择:
一是放弃回答该问题,退出游戏,拿走奖金;二是回答问题。
如果回答正确,奖金加倍;如果回答错误,游戏结束,你一分钱也拿不到。
如果正确地回答完所有n个问题,你将拿走所有的2^n元钱,成为2^n元富翁。
当然,回答问题是有风险的。每次听到问题后,你可以立刻估计出答对的概率。
由于主持人会随机问问题,你可以认为每个问题的答对概率在t和1之间均匀分布。
输入整数n和实数t(1≤n≤30,0≤t≤1),你的任务是求出在最优策略下,拿走的奖金金额的期望值。
这里的最优策略是指让奖金的期望值尽量大。
分析:
假设刚开始游戏,如果直接放弃,奖金为1;如果回答,期望奖金为(p * 答对1题后的最大期望奖金)。
用d[i]表示“答对i题后的最大期望奖金”,再加上“不回答”时的情况,可以得到:
若第1题答对概率为p,期望奖金的最大值 = max{2^0, p*d[1]},
这里故意写成2^0,强调这是“答对0题后放弃”所得到的最终奖金。
上述分析可以推广到一般情况,但是要注意一点:到目前为止,一直假定p是已知的,
而p实际上并不固定,而是在t~1内均匀分布。可以得到:d[i] = max{2^i, p*d[i+1]}。
因为有max函数的存在,需要分两种情况讨论,即p*d[i+1]<2^i和p*d[i+1]≥2^i两种情况。
令p0=max{t, 2^i/d[i+1]}(加了一个max是因为根据题目,p≥t),则:
p<p0时,p*d[i+1]<2^i,因此“不回答”比较好,期望奖金等于2^i。
p≥p0时,“回答”比较好,期望奖金等于d[i+1]乘以p的平均值,即(1+p0)/2 * d[i+1]。
在第一种情况中,p的实际范围是[t,p0),因此概率为p1=(p0-t)/(1-t)。
根据全期望公式,d[i] = 2^i * p1 + (1+p0)/2 * d[i+1] * (1-p1)。
边界是d[n] = 2^n,逆向递推出d[0]就是本题的答案。
代码:
1 #include <cstdio> 2 #include <algorithm> 3 using namespace std; 4 5 const int UP = 30 + 5; 6 double d[UP]; 7 8 int main() { 9 int n; 10 double t; 11 while(scanf("%d%lf", &n, &t) && n) { 12 d[n] = 1<<n; 13 for(int i = n-1; i >= 0; i--) { 14 double p0 = max(t, (double)(1<<i) / d[i+1]); 15 double p1 = (p0-t) / (1-t); 16 d[i] = p1 * (1<<i) + (1-p1) * (1+p0)/2 * d[i+1]; 17 } 18 printf("%.3f\n", d[0]); 19 } 20 return 0; 21 }
转载于:https://www.cnblogs.com/hkxy125/p/9588312.html
UVa 10900 - So you want to be a 2n-aire?(期望DP)相关推荐
- Uva 11600 期望DP
题意:n个城市,相互可达(有n(n-1)/2条边),其中有一些道路上面有妖怪,现在,从1号城市出发,随机挑取一个城市走去,这个道路上的妖怪就会被消灭,求: 在平均情况下,需要走多少步,使得任意两个城市 ...
- UVa 11762 (期望 DP) Race to 1
设f(x)表示x转移到1需要的次数的期望,p(x)为不超过x的素数的个数,其中能整除x的有g(x)个 则有(1-g(x)/p(x))的概率下一步还是转移到x,剩下的情况各有1/p(x)的概率转移到x/ ...
- UVA 12563 Jin Ge Jin Qu hao(多阶段决策问题,DP)
题意:给出n首爱唱的歌,剩余t时间.由于ktv最后不会强制暂停你的歌曲,所以最后你可以点一首劲歌金曲,也就是最后可以加上678秒多唱一些时间.问在保证能唱的歌曲尽量多的情况下,唱歌的时间尽量长.输出最 ...
- UVa 1252 - Twenty Questions(记忆化搜索,状态压缩dp)
本文出自 http://blog.csdn.net/shuangde800 题目链接:点击打开链接 题目大意 有n个长度为m的二进制串,每个都是不同的. 为了把所有字符串区分开,你可以询问,每次可 ...
- uva live 4394 String painter 间隔dp
// uva live 4394 String painter // // 问题是,在培训指导dp运动主题,乍一看,我以为只是一点点复杂 // A A磕磕磕,两个半小时后,.发现超过例子.然而,鉴于他 ...
- π-Algorithmist分类题目(3)
原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(3) Probability ...
- ACM里的期望和概率问题 从入门到精(入)通(土)
ACM里的期望和概率问题的个人训练和总结 起因:在2020年一场HDU多校赛上.有这么一题没做出来. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=68 ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- 动态规划总结与题目分类
源博客链接:http://blog.csdn.net/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少 ...
- 『ACM-算法-动态规划』初识DP动态规划算法
一.多阶段决策过程的最优化问题 在现实生活中,有类活 动的过程,由于 它的特殊性,可将过程分成若干个互相阶段.在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.当阶段决策的选取不是任意确 ...
最新文章
- 关于信噪比的确切含义——Eb/No和SNR的区别
- kernel笔记——中断
- Light Image Resizer6中文版
- 真假应用傻傻分不清,HideIcon病毒玩起“隐身计”
- php发送验证图片,php生成图片验证码_PHP教程
- ubuntu14安装python_ubuntu14.04 安装python3.7
- Linux项目日报,1Password推出Linux版本 现已进入公开预览阶段
- 第三届空间信息智能服务研讨会
- psm倾向得分匹配法举例_倾向得分匹配法的详细解读
- BUUCTF之随便注
- 2012-7-06可樂词汇积累#9313;
- 简单讲解JSONP的跨域原理
- 计算机系统类型64位,详细教你怎么看电脑是32位还是64位
- 微信分享 android 闪退,微信分享崩溃
- Python数独算法
- 仿今日头条后台管理系统(二)
- 解决:Word中无法使用“粘贴”快捷键
- 关于灰色关联分析以及灰色预测初步理解
- vuecli4安装axios以及简单使用
- .bat文件设置自动关机以及弹框确认
热门文章
- 调用codesoft,打印条码,批量连续打印,变量打印
- 中国移动下一代移动技术将选择LTE
- [LCS]LCS应用案例--SipSnoop概述。
- 解决LINQ to Entities does not recognize the method 'System.String Encrypt(System.String)' method, and
- 05. Know what functions C++ silently writes and calls
- matlab回归系数 t检验6,matlab做回归分析时,能做t检验吗?
- android 邮件发送html,如何发送HTML电子邮件
- 电脑常见故障_笔记本电脑常见故障键盘失效
- (day 20 - 中序遍历加双指针)剑指 Offer 36. 二叉搜索树与双向链表
- linux系统盘打快照,使用Btrfs对Linux系统进行快照回滚