UVa 10900 (连续概率、递推) So you want to be a 2n-aire?
题意:
初始奖金为1块钱,有n个问题,连续回答对i个问题后,奖金变为2i元。
回答对每道题的概率在t~1之间均匀分布。
听到问题后有两个选择:
- 放弃回答,拿走已得到的奖金
- 回答问题:
- 如果回答正确,奖金加倍
- 如果回答错误,游戏结束,得不到奖金
分析:
d[i]表示答对i题后最大期望奖金,设回答对第i题的概率为p,
则回答第i题的期望奖金 = p × d[i]
考虑上不回答的情况,期望奖金最大值为max{2i-1, p*d[i]}
因为p在t~1均匀分布,所以d[i]等于分段函数max{2i-1, p*d[i]}在这个区间上的积分。
因为一段是常函数,一段是直线,所以积分很好求。
令p0 = max{t, 2i/d[i+1]}
- p < p0,选择不回答,奖金期望为2i
- p ≥ p0,选择回答,奖金期望为(1+p0)/2 * d[i+1]
根据全概率公式,第一种情况的概率为p1 = (p0 - t) / (1 - t)
d[i] = p1*2i + (1-p1)*(1+p0)/2 * d[i+1]
边界d[n] = 2n,答案为d[0]
#include <cstdio>
#include <algorithm>
using namespace std; const int maxn = ;
double d[maxn]; int main()
{
//freopen("in.txt", "r", stdin);
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] = (double)(<<i)*p1 + (+p0)/ * d[i+] * (-p1);
}
printf("%.3f\n", d[]);
} return ;
}
代码君
UVa 10900 (连续概率、递推) So you want to be a 2n-aire?的更多相关文章
- UVA 10288 - Coupons(概率递推)
UVA 10288 - Coupons option=com_onlinejudge&Itemid=8&page=show_problem&category=482&p ...
- UVA 557 - Burger(概率 递推)
Burger When Mr. and Mrs. Clinton's twin sons Ben and Bill had their tenth birthday, the party was ...
- UVA 11021 - Tribles(概率递推)
UVA 11021 - Tribles 题目链接 题意:k个毛球,每一个毛球死后会产生i个毛球的概率为pi.问m天后,全部毛球都死亡的概率 思路:f[i]为一个毛球第i天死亡的概率.那么 f(i)=p ...
- UVa 557 Burger (概率+递推)
题意:有 n 个牛肉堡和 n 个鸡肉堡给 2n 个客人吃,在吃之前抛硬币来决定吃什么,如果剩下的汉堡一样,就不用投了,求最后两个人吃到相同的概率. 析:由于正面考虑还要要不要投硬币,太麻烦,所以我们先 ...
- UVA 1541 - To Bet or Not To Bet(概率递推)
UVA 1541 - To Bet or Not To Bet 题目链接 题意:这题题意真是神了- -.看半天,大概是玩一个游戏,開始在位置0.终点在位置m + 1,每次扔一个硬币,正面走一步,反面走 ...
- UVa 557 (概率 递推) Burger
题意: 有两种汉堡给2n个孩子吃,每个孩子在吃之前要抛硬币决定吃哪一种汉堡.如果只剩一种汉堡,就不用抛硬币了. 求最后两个孩子吃到同一种汉堡的概率. 分析: 可以从反面思考,求最后两个孩子吃到不同汉堡 ...
- UVA 11021 Tribles(递推+概率)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33059 [思路] 递推+概率. 设f[i]表示一只Tribble经 ...
- UVa 10561 (SG函数 递推) Treblecross
如果已经有三个相邻的X,则先手已经输了. 如果有两个相邻的X或者两个X相隔一个.,那么先手一定胜. 除去上面两种情况,每个X周围两个格子不能再放X了,因为放完之后,对手下一轮再放一个就输了. 最后当“ ...
- UVa 12034 - Race(递推 + 杨辉三角)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
随机推荐
- JavaScript 高级程序设计 01-基本概念
一.JavaScript组成 1.一个完成JavaScript是由ECMAScript.DOM.BOM三部分组成的. ECMAScript:提供核心语言功能--语法.类型.语句.关键字.保留字.操作符 ...
- Ecshop实现仿Taobao地区运费模板
目录: 1.Ecshop后台配送方式创建 2.商品绑定配送方式的运费模板 2.1 数据表“ecs_goods”增加一个字段,执行下面SQL语句: 2.2 后台添加/编辑 商品 调出已经安装配送方式 & ...
- 通过 SuperObject 生成 json string
(* { "name": "Henri Gourvest", /* this is a comment */ "vip": true, &q ...
- HTMLEncode httpencode UTF8Encode
1.引用单元: httpApp; 2. 对于 http Post的提交内容,应该是: HttpEncode(Utf8Encode(StrValue)); 不然与web方式的 Url_enco ...
- python字典操作
Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: 代码如下: dict ...
- docker下PHP+Nginx+HHVM运行环境
Dockerfile 准备开始,我们创建一个 Dockerfile —— Dockerfile 包含如何创建所需镜像的指令. FROM centos:centos6MAINTAINER Mike ...
- Oracle中SAVEPOINT和ROLLBACK用法
savepoint是事务内部允许部分rollback的标志符.因为事务中对记录做了修改,我们可以在事务中创建savepoint来标识不同的点.如果遇到错误,就可以rollback到不同的点或直接回来事 ...
- oracle游标小试
有时候需要大面积的修改数据,这个时候用循环语句效率不高.而临时表又不能满足点对点修改的时候,游标似一种不错的选择(PS:好像游标也是为循环而生的吧) 现在有两张表 t1(ryid number,nam ...
- eclipse 僵死/假死 问题排查及解决
症状: 使用Eclipse win 64位版本,indigo及kepler都重现了,使用tomcat 6.0.39,jdk1.6.u45及1.7u45均尝试了,也重现. 重现步骤很简单,使用debug ...
- 深度:ARC会导致的内存泄露
iOS提供了ARC功能,很大程度上简化了内存管理的代码. 但使用ARC并不代表了不会发生内存泄露,使用不当照样会发生内存泄露. 下面列举两种内存泄露的情况. 1,循环参照 A有个属性参照B,B有个属性 ...