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& ...
随机推荐
- sublime 经验总结 主题有 less2css
1. 安装“包控制”模块 操作步骤见该网站:https://sublime.wbond.net/installation#Simple sublime2的代码如下: import urllib2,os ...
- 超棒的阿里巴巴矢量图标库——支持IE6
Iconfont.cn 是由阿里巴巴UX部门推出的矢量图标管理网站,也是国内首家推广Webfont形式图标的平台.网站涵盖了1000多个常用图标并还在持续更新 中,Iconfont平台为用户提供在线图 ...
- dapper 写查询sql 时,多条件参数操作方法
var args = new DynamicParameters(new {}); if (obj.orderId != null) { sb.Append(" AND OrderId = ...
- C语言的32个关键字
由ANSI标准定义的C语言关键字共个: auto double int struct break else long switch case enum register typedef char ex ...
- 《WPF程序设计指南》读书笔记——第5章 Stack与Wrap
1.StackPanel面板 using System; using System.Windows; using System.Windows.Input; using System.Windows. ...
- 数据库 mysql 优化器原理
MySQL查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行. 你的最终目标是提交SELECT语句查找数据行,而不是排除数据行.优化器试图排除数据 ...
- Eclipse 中隐藏的 5 个非常有用的功能
Eclipse就是一头野兽.它也是一套设备,神秘但更具威力.有些人称它为一个持续变形机.另一些人则称它是一个变异体.不错,它很庞大,需要花费多年才能掌握.而在你好不容易掌握之后,你的老板出现了然后告诉 ...
- windows2003 64位 iis6.0 运行32位web应用程序
适用于已安装.NET4.0的windows 2003 64位机器. 系统要求: windows 2003 sp1 步骤: 1. 打开命令行,转到目录: %systemdrive%\Inetpub\Ad ...
- 简单3d RPG游戏 之 004 攻击(二)
人物和怪物的攻击都有CD冷却,在PlayerAttack脚本中添加成员 //冷却倒计时 public float attackTimer; //CD冷却时间 public float coolDown ...
- 3.4 spring- lookup-method 子元素的使用与解析
1. lookup-method的应用: 1.1 子元素lookup-method 似乎不是很常用,但是在某些时候他的确是非常有用的属性,通常我们称它为 "获取器注入" . 引用 ...