beijing(数学题)
beijing(数学题)
甲和乙随机进行2n+1场n胜球赛,赌球必须对每场球赛单独押注。由于小明是甲队的铁杆球迷,现在小明希望如果甲最终获胜,那么他获得\(2^{2n-1}\)元,否则乙队获胜,他失去\(2^{2n-1}\)元。给出所有比赛的结果,如果你是小明,请问如何对比赛押注,才能使得目标被达成。
如果当前甲的胜率是p,那么假设下一场比赛甲赢了,胜率会变成p+q。由于甲赢的胜率和甲输的胜率的平均数是p(待证),因此只要对每场比赛下注\(2q*2^{2n-1}\),最后就能达成目的。设\(F(t, i)\)表示还剩下t场比赛,甲队需要赢i场才能获得最终的胜利,甲队最终获胜的概率。
假设到当前位置,甲还需要x场获得胜利,乙还需要y场获得胜利。如果下一场比赛赢了,胜率会变成\(F(x+y-2, x-1)\),输了则会变成\(F(x+y-2, x)\)。显然的是,\(F(x+y-2, x-1)-F(x+y-2, x)=2q\)。
由F的定义可以推出式子:\(F(t, i)=\frac{2^t-\sum_{0\le j<i}C(j, t)}{2^t}\)。因此\(F(x+y-2, x-1)-F(x+y-2, x)=\frac{C(x-1, x+y-2)}{2^{x+y-2}}=2q\)。因此q可以通过那个分式推出来。
#include <cstdio>
using namespace std;
typedef long long LL;
const LL maxn=1e5+5, P=1e9+7;
LL n, inv[maxn*2], fac[maxn*2], mi2[maxn*2], ans, d, cnt[2];
LL C(LL m, LL n){ //C(m, n)
return fac[n]*inv[m]%P*inv[n-m]%P; }
int main(){
scanf("%lld", &n); inv[0]=inv[1]=1; fac[0]=mi2[0]=1;
for (LL i=2; i<=2*n; ++i) inv[i]=inv[P%i]*(P-P/i)%P;
for (LL i=2; i<=2*n; ++i) inv[i]=inv[i]*inv[i-1]%P;
for (LL i=1; i<=2*n; ++i) fac[i]=fac[i-1]*i%P;
for (LL i=1; i<=2*n; ++i) mi2[i]=mi2[i-1]*2%P;
LL x=n, y=n;
for (;;){
printf("%lld\n", C(x-1, x+y-2)*mi2[2*n-x-y+1]%P);
scanf("%lld", &d);
if (++cnt[d]==n) break;
if (d==0) --x; else --y;
}
return 0;
}
beijing(数学题)的更多相关文章
- HDUOJ-------2493Timer(数学 2008北京现场赛H题)
Timer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- ytu 2558: 游起来吧!超妹!(水题,趣味数学题)
2558: 游起来吧!超妹! Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 7 Solved: 3[Submit][Status][Web Board ...
- bzoj 2659: [Beijing wc2012]算不出的算式
2659: [Beijing wc2012]算不出的算式 Time Limit: 3 Sec Memory Limit: 128 MB Description 算不出的算式背景:曾经有一个老掉牙的游 ...
- Kalendar server Beijing Tiandiyuandian Technology Limited 果然是木马
我的Windows 7 系统,在开始菜单里面输入msconfig ,回车打开系统配置,隐藏所有Microsoft的进程,在服务和启动项里面都有 Kalendar server Beijing Ti ...
- sdut 2416:Fruit Ninja II(第三届山东省省赛原题,数学题)
Fruit Ninja II Time Limit: 5000MS Memory limit: 65536K 题目描述 Have you ever played a popular game name ...
- python解无忧公主数学题107.py
python解无忧公主数学题107.py """ python解无忧公主数学题107.py http://mp.weixin.qq.com/s?__biz=MzI5ODE ...
- python解无忧公主数学题108
""" python解无忧公主数学题108回文.py 题目来源: http://mp.weixin.qq.com/s?__biz=MzI5ODEwMDQyNw==& ...
- HDU 圆桌会议 - 数学题
圆桌 题意就是每分钟可以将相邻的两个人的位置互换一下 , 问你 ,几分钟可以将所有人的位置互换成 原先的 B 在A的右边 C在A的左边 , 换成现在的 C 在A 的右边 , B 在 A 的 ...
- Amazon Kindle Device is hiring in Beijing Shanghai and Shenzhen!
This is Angela from recruitment team of Amazon Kindle Device Software & Applications, we are exp ...
随机推荐
- 我的MyGeneration
话不多说,直接上代码 Interface Code: public class GeneratedGui : DotNetScriptGui { public GeneratedGui(ZeusCon ...
- [置顶]
都是类型惹的祸——小心unsigned
正如我们所知道的,编程语句都有很多的基本数据类型,如char,inf,float等等,而在C和C++中还有一个特殊的类型就是无符号数,它由unsigned修饰,如unsigned int等.大家有没想 ...
- [phonegap]安装升级
安装 npm install -g phonegapnpm install -g phonegap@版本号 比如 npm install -g phonegap@3.3.0-0.19.6 升级 ...
- leetcode645
vector<int> findErrorNums(vector<int>& nums) { ; int S[N]; int n = nums.size(); ; i ...
- Tiny4412 Linux 内核启动流程
Linux内核的启动分为压缩内核和非压缩内核两种,这里我们以压缩内核为例.压缩内核运行时,将运行一段解压缩程序,得到真正的内核镜像,然后跳转到内核镜像运行.此时,Linux进入非压缩内核入口,在非压缩 ...
- CMake 使用方法 & CMakeList.txt<转>
CMake 使用方法 & CMakeList.txt cmake 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的make ...
- 什么是Scatter/Gather?
scatter/gather指的在多个缓冲区上实现一个简单的I/O操作,比如从通道中读取数据到多个缓冲区,或从多个缓冲区中写入数据到通道: scatter(分散):指的是从通道中读取数据分散到多个缓冲 ...
- HTML以及DOM选择属性
http://www.cnblogs.com/season-huang/p/3360869.html
- struts2学习笔记(4)接收参数
①用action属性接收 登录界面例子 在webroot下创建login.jsp和success.jsp login.jsp中加入表单: <form action="LoginActi ...
- filter(函数,可以迭代的对象)
#!/usr/bin/env python #filter(函数,可以迭代的对象) def f1(x): if x > 22: return True else: return False re ...