UVa 10900 - So you want to be a 2n-aire?
题目大意:
一个答题赢奖金的问题,玩家初始的金额为1,给出n,表示有n道题目,t表示说答对一道题目的概率在t到1之间,每次面对一道题,可以选择结束游戏,获得当前奖金;回答下一道问题,答对的概率p在t到1之间,答对的话奖金翻倍,答错的话结束游戏,没有奖金,求玩家赢的奖金的期望值的最大值。
分析: 假设玩家已经答对了i题,那么他当前的奖金应该是2^i,若答对i+1道题的概率为p, 如果p * ans(下一题的最优期望)>2^i,则说明他一定会选择答题,所以可以先求一下临界概率f = 2^i/ ans,如果f < t的话,说明无论p为何值(因为p在t~1)都满足p * ans >2 ^i,所以一定回答下一题(这是p去t和1的平均值),如果f>t的话,就要分两种情况讨论,即p在(t~f)的时候,和(f~1),注意两种情况的概率也不相同。
#include <stdio.h>
#include <string.h>
#include <math.h>
const int N = 35;
int n;
double v[N], t;
int main ()
{
v[0] = 1;
for (int i = 1; i <= 30; i++)
v[i] = v[i - 1] * 2;
while (scanf("%d%lf", &n, &t), n && t)
{
double ans = v[n];
for (int i = n - 1; i >= 0; i--)
{
double f = v[i] / ans;
if (f <= t)
ans = (1 + t) / 2 * ans;
else
ans = (f - t) / (1 - t) * v[i] + (1 - f) / (1 - t) * (1 + f) / 2 * ans;
printf("%.3lf\n", ans);
}
return 0;
}
UVa 10900 - So you want to be a 2n-aire?的更多相关文章
- 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& ...
- uva 10900
题意一直没看懂~~~~不过看懂了之后还是感觉挺好的 #include<cstdio> #include<cstring> #include<algorithm> # ...
- UVa 10900 So you want to be a 2n-aire? (概率DP,数学)
题意:一 个答题赢奖金的问题,玩家初始的金额为1,给出n,表示有n道题目,t表示说答对一道题目的概率在t到1之间,每次面对一道题,可以选择结束游戏, 获得当 前奖金:回答下一道问题,答对的概率p在t到 ...
- 【概率】Uva 10900 - So you want to be a 2n-aire?
写完这题赶紧开新题... 话说这题让我重新翻了概率论课本,果然突击完了接着还给老师了,毫无卵用. 很多人拿这位大神的题解作引,在这我也分享给大家~ 对于其中的公式在这里做一点简要的说明.因为自己也是理 ...
- UVa 10900 (连续概率、递推) So you want to be a 2n-aire?
题意: 初始奖金为1块钱,有n个问题,连续回答对i个问题后,奖金变为2i元. 回答对每道题的概率在t~1之间均匀分布. 听到问题后有两个选择: 放弃回答,拿走已得到的奖金 回答问题: 如果回答正确,奖 ...
- So you want to be a 2n-aire? UVA - 10900(概率)
题意: 初始值为1, 每次回答一个问题,如果答对初始值乘2,答错归0,结束,一共有n个问题,求在最优的策略下,最后值的期望值 解析: 注意题中的一句话 每个问题的答对概率在t和1之间均匀分布 也就 ...
- UVA 10900 So you want to be a 2n-aire? (概率dp)
题意:玩家初始的金额为1:给出n,表示有n道题目:t表示说答对一道题目的概率在t到1之间均匀分布. 每次面对一道题,可以选择结束游戏,获得当前奖金:或者回答下一道问题,答对的话奖金翻倍,答错的话结束游 ...
- UVA 10900 So you want to be a 2n-aire? 2元富翁 (数学期望,贪心)
题意:你一开始有1元钱,接下来又n<=30个问题,只需答对1个问题手上的钱就翻倍,最多答对n个,得到的钱是2n.而每个问题答对的概率是[t,1]之间平均分布,那么问最优情况下得到奖金的期望值是多 ...
- 紫书 例题 10-20 UVa 10900(连续概率)
分两类,当前第i题答或不答 如果不回答的话最大期望奖金为2的i次方 如果回答的话等于p* 下一道题的最大期望奖金 那么显然我们要取最大值 所以就要分类讨论 我们设答对i题后的最大期望奖金为d[i] 显 ...
随机推荐
- java转义字符探究恢复
今天工作的时候,遇到了个奇怪的问题,是关于字符串转义与替换的.最后终于解决了,特总结下. 小demo, package com.westward; public class Demo { /** * ...
- Android动画效果生动有趣的通知NiftyNotification(Android Toast替代品)
NiftyNotification在github上的项目主页是:https://github.com/sd6352051/NiftyNotification NiftyNotification本身又依 ...
- 闭包 (循环事件获取不到i) 和 各种解决循环获取不到i的解决方法
for(var i in fav){ (function(){ var p=i; var obj=$S.getId(fav[i]); ...
- LA 4119 - Always an integer
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...
- [开发笔记]-jQuery获取checkbox选中项等操作及注意事项
今天在做一个项目功能时需要显示checkbox选项来让用户进行选择,由于前端不是很熟练,所以做了一个简单的Demo,其中遇到一些小问题,特记录下来,希望能帮到遇到类似问题的同学们. 1. 获取chec ...
- Section 1.4 The Clocks
0 0 虽然不知不觉做到了Section 1.4了,但是都没有把做题的想法和代码发到这里… 本来今天想从Section 1.2补起来然后发现之前做的题都忘了…(Name That Number那道题是 ...
- asp.net 代码 注意点
1. 模糊查询时,注意要去掉空格 前台: <input id="txtQJBH" type="text" runat="server" ...
- IOS 中 NSArray
今天在做 cordova 关于处理未读条数的插件时,需要在js中传入 int 型. 但是发现所有插件 里面的参数信息都是封装在NSArry对象里面. 因此又突然想直接在NSArry获取信息的想法 ...
- 【SQL查询日志】查看数据库历史查询记录
--关键字:cross apply & outer apply --最后更新:2011-10-20 作者:Ronli--更新链接:http://www.cnblogs.com/ronli/ar ...
- 编译mahout0.9
一.编译的必要性 由于hadoop的生态系统中的各个组建之间的兼容性的问题,因此导致将各个组件组合在一起的时候,会存在一个兼容性的问题,这也是apache hadoop生态系统给开发者带来的一个问题, ...