链接:

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]就是本题的答案。

代码:

 #include <cstdio>
#include <algorithm>
using namespace std; const int UP = + ;
double d[UP]; int main() {
int n;
double t;
while(scanf("%d%lf", &n, &t) && n) {
d[n] = <<n;
for(int i = n-; i >= ; i--) {
double p0 = max(t, (double)(<<i) / d[i+]);
double p1 = (p0-t) / (-t);
d[i] = p1 * (<<i) + (-p1) * (+p0)/ * d[i+];
}
printf("%.3f\n", d[]);
}
return ;
}

UVa 10900 - So you want to be a 2n-aire?(期望DP)的更多相关文章

  1. UVa 10900 So you want to be a 2n-aire? (概率DP,数学)

    题意:一 个答题赢奖金的问题,玩家初始的金额为1,给出n,表示有n道题目,t表示说答对一道题目的概率在t到1之间,每次面对一道题,可以选择结束游戏, 获得当 前奖金:回答下一道问题,答对的概率p在t到 ...

  2. UVA 10900 So you want to be a 2n-aire? (概率dp)

    题意:玩家初始的金额为1:给出n,表示有n道题目:t表示说答对一道题目的概率在t到1之间均匀分布. 每次面对一道题,可以选择结束游戏,获得当前奖金:或者回答下一道问题,答对的话奖金翻倍,答错的话结束游 ...

  3. UVA - 11584 划分字符串的回文串子串; 简单dp

    /** 链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34398 UVA - 11584 划分字符串的回文串子串: 简单 ...

  4. UVa 10900 - So you want to be a 2n-aire?

    题目大意: 一个答题赢奖金的问题,玩家初始的金额为1,给出n,表示有n道题目,t表示说答对一道题目的概率在t到1之间,每次面对一道题,可以选择结束游戏,获得当前奖金:回答下一道问题,答对的概率p在t到 ...

  5. uva 10900

    题意一直没看懂~~~~不过看懂了之后还是感觉挺好的 #include<cstdio> #include<cstring> #include<algorithm> # ...

  6. 【概率】Uva 10900 - So you want to be a 2n-aire?

    写完这题赶紧开新题... 话说这题让我重新翻了概率论课本,果然突击完了接着还给老师了,毫无卵用. 很多人拿这位大神的题解作引,在这我也分享给大家~ 对于其中的公式在这里做一点简要的说明.因为自己也是理 ...

  7. UVa 10900 (连续概率、递推) So you want to be a 2n-aire?

    题意: 初始奖金为1块钱,有n个问题,连续回答对i个问题后,奖金变为2i元. 回答对每道题的概率在t~1之间均匀分布. 听到问题后有两个选择: 放弃回答,拿走已得到的奖金 回答问题: 如果回答正确,奖 ...

  8. So you want to be a 2n-aire? UVA - 10900(概率)

    题意: 初始值为1, 每次回答一个问题,如果答对初始值乘2,答错归0,结束,一共有n个问题,求在最优的策略下,最后值的期望值 解析: 注意题中的一句话  每个问题的答对概率在t和1之间均匀分布  也就 ...

  9. UVA 10900 So you want to be a 2n-aire? 2元富翁 (数学期望,贪心)

    题意:你一开始有1元钱,接下来又n<=30个问题,只需答对1个问题手上的钱就翻倍,最多答对n个,得到的钱是2n.而每个问题答对的概率是[t,1]之间平均分布,那么问最优情况下得到奖金的期望值是多 ...

随机推荐

  1. SSIS教程:创建简单的ETL包 -- 3. 添加日志(Adding Logging)

    Microsoft Integration Services 包含日志记录功能,可通过提供任务和容器事件跟踪监控包执行情况以及进行故障排除. 日志记录功能非常灵活,可以在包级别或在包中的各个任务和容器 ...

  2. 如何快速备份还原Sql Server 数据库

    备份数据库 选择你要备份的数据库,鼠标右键单击,选择任务-备份 弹出备份数据库窗口,选择添加 弹出选择备份目标窗口,点击浏览,选择存放备份数据库的目录,输入文件名,后缀名输入.bak,点击确定,确定, ...

  3. ssh 和 scp 命令访问非默认22端口。

    ssh :(命令中的 p 小写) ssh -p 端口号 root@服务器ip scp: (命令中的 P 大写)(-r表示将目录下的目录递归拷贝.“.*”是将所有文件包括隐藏文件.) 上传文件到服务器s ...

  4. HTML页面格式

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. 使用Redis进行简单的数据缓存

    引入spring-data-redis包.jedis.connection-pool包 applicationContext.xml的配置 <!-- redis Connection --> ...

  6. Spring系列之——使用模板快速搭建springboot项目

    1 在官网https://start.spring.io/生成spring boot的模板 2 IDEA导入模板,设置如下勾选项,其他选项卡为默认值 3 idea呈现 4 新增controller类 ...

  7. 用js 实现代码获取下拉框的value值

    var rtl=document.getElementById("selpartyorg"); //获取下拉框对象 var id=rtl.options[rtl.selectedI ...

  8. Android Studio下载/更新SDK

    今天安装配置Android Studio的时候,用SDK Manager下载SDK的时候只显示了一个7.0,别的都刷新不出来(被墙了).去网上搜索怎么解决,发现很多帖子的方法已经过时了(跟现在的AS版 ...

  9. JDBC处理事务

    一.什么是事务? 在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务! 二.事务是必须满足4个条件(AC ...

  10. Tomcat的下载安装及使用

    macOS Sierra Version 10.13.2 环境下Tomcat的下载与安装以及InterlliJ IDEA 2017.2 环境下配置Tomcat 与创建Web项目 一.Tomcat的下载 ...