链接:

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)相关推荐

  1. Uva 11600 期望DP

    题意:n个城市,相互可达(有n(n-1)/2条边),其中有一些道路上面有妖怪,现在,从1号城市出发,随机挑取一个城市走去,这个道路上的妖怪就会被消灭,求: 在平均情况下,需要走多少步,使得任意两个城市 ...

  2. 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/ ...

  3. UVA 12563 Jin Ge Jin Qu hao(多阶段决策问题,DP)

    题意:给出n首爱唱的歌,剩余t时间.由于ktv最后不会强制暂停你的歌曲,所以最后你可以点一首劲歌金曲,也就是最后可以加上678秒多唱一些时间.问在保证能唱的歌曲尽量多的情况下,唱歌的时间尽量长.输出最 ...

  4. UVa 1252 - Twenty Questions(记忆化搜索,状态压缩dp)

    本文出自   http://blog.csdn.net/shuangde800 题目链接:点击打开链接 题目大意 有n个长度为m的二进制串,每个都是不同的. 为了把所有字符串区分开,你可以询问,每次可 ...

  5. uva live 4394 String painter 间隔dp

    // uva live 4394 String painter // // 问题是,在培训指导dp运动主题,乍一看,我以为只是一点点复杂 // A A磕磕磕,两个半小时后,.发现超过例子.然而,鉴于他 ...

  6. π-Algorithmist分类题目(3)

    原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(3) Probability ...

  7. ACM里的期望和概率问题 从入门到精(入)通(土)

    ACM里的期望和概率问题的个人训练和总结 起因:在2020年一场HDU多校赛上.有这么一题没做出来. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=68 ...

  8. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  9. 动态规划总结与题目分类

    源博客链接:http://blog.csdn.net/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少 ...

  10. 『ACM-算法-动态规划』初识DP动态规划算法

    一.多阶段决策过程的最优化问题 在现实生活中,有类活 动的过程,由于 它的特殊性,可将过程分成若干个互相阶段.在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.当阶段决策的选取不是任意确 ...

最新文章

  1. 关于信噪比的确切含义——Eb/No和SNR的区别
  2. kernel笔记——中断
  3. Light Image Resizer6中文版
  4. 真假应用傻傻分不清,HideIcon病毒玩起“隐身计”
  5. php发送验证图片,php生成图片验证码_PHP教程
  6. ubuntu14安装python_ubuntu14.04 安装python3.7
  7. Linux项目日报,1Password推出Linux版本 现已进入公开预览阶段
  8. 第三届空间信息智能服务研讨会
  9. psm倾向得分匹配法举例_倾向得分匹配法的详细解读
  10. BUUCTF之随便注
  11. 2012-7-06可樂词汇积累#9313;
  12. 简单讲解JSONP的跨域原理
  13. 计算机系统类型64位,详细教你怎么看电脑是32位还是64位
  14. 微信分享 android 闪退,微信分享崩溃
  15. Python数独算法
  16. 仿今日头条后台管理系统(二)
  17. 解决:Word中无法使用“粘贴”快捷键
  18. 关于灰色关联分析以及灰色预测初步理解
  19. vuecli4安装axios以及简单使用
  20. .bat文件设置自动关机以及弹框确认

热门文章

  1. 调用codesoft,打印条码,批量连续打印,变量打印
  2. 中国移动下一代移动技术将选择LTE
  3. [LCS]LCS应用案例--SipSnoop概述。
  4. 解决LINQ to Entities does not recognize the method 'System.String Encrypt(System.String)' method, and
  5. 05. Know what functions C++ silently writes and calls
  6. matlab回归系数 t检验6,matlab做回归分析时,能做t检验吗?
  7. android 邮件发送html,如何发送HTML电子邮件
  8. 电脑常见故障_笔记本电脑常见故障键盘失效
  9. (day 20 - 中序遍历加双指针)剑指 Offer 36. 二叉搜索树与双向链表
  10. linux系统盘打快照,使用Btrfs对Linux系统进行快照回滚