Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 555 Solved: 273
[Submit][Status][Discuss]

Description

Alice和Bob在玩一个游戏。有n个石子在这里,Alice和Bob轮流投掷硬币,如果正面朝上,则从n个石子中取出一个石子,否则不做任何事。取到最后一颗石子的人胜利。Alice在投掷硬币时有p的概率投掷出他想投的一面,同样,Bob有q的概率投掷出他相投的一面。

现在Alice先手投掷硬币,假设他们都想赢得游戏,问你Alice胜利的概率为多少。

Input

第一行一个正整数t,表示数据组数。

对于每组数据,一行三个数n,p,q。

Output

对于每组数据输出一行一个实数,表示Alice胜利的概率,保留6位小数。

Sample Input

1

1 0.5 0.5

Sample Output

0.666667

HINT

数据范围:

1<=t<=50

0.5<=p,q<=0.99999999

对于100%的数据 1<=n<=99999999

Source

题解

\(f[i]\)表示剩i个石头,Alice先手获胜的概率
\(g[i]\)表示剩i个石头,Alice后手获胜的概率
不妨设他们都想选

\(f[i] = p \times g[i-1] + (1-p) \times g[i]\)
\(g[i] = q \times f[i-1] + (1-q) \times f[i]\)
不想选只需把\(p\)与\((1-p)\)互换,\(q\)与\((1-q)\)即可
这个式子看上去是不能推的,但观察发现下面式子左边是\(g[i]\),右边是\(f[i-1]\)和\(f[i]\),上面的式子右边是\(g[i]\)和\(g[i-1]\),左边是 $ g[i]$
所以把下边的式子待到上面去就能得到\(f[i]\)等于关于\(g[i-1]\),\(f[i-1]\)的多项式,\(f[i]\)就可以递推了
\(g[i]\)同理

那么如何确定想选还是不想选呢?
不难发现,如果\(f[i-1] > g[i-1]\),肯定是不想选的,Ailce想让Bob选成剩下\(i-1\)个,这样自己获胜概率大一些
反之,如果\(f[i-1] < g[i-1]\),肯定是想选的,同理

但是n很大,线性也做不了
不(题)难(解)发(上)现(说)n大了之后概率变动很小
既然是n的那就让n最大跑个1000W吧(或者卡时跑)

嘴巴题8 BZOJ2318: Spoj4060 game with probability Problem的更多相关文章

  1. BZOJ2318: Spoj4060 game with probability Problem

    #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #i ...

  2. 【BZOJ2318】Spoj4060 game with probability Problem 概率

    [BZOJ2318]Spoj4060 game with probability Problem Description Alice和Bob在玩一个游戏.有n个石子在这里,Alice和Bob轮流投掷硬 ...

  3. 【BZOJ 2318】 2318: Spoj4060 game with probability Problem(概率DP)

    2318: Spoj4060 game with probability Problem Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 371  Sol ...

  4. Bzoj 2318 Spoj4060 game with probability Problem

    2318: Spoj4060 game with probability Problem Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 524  Sol ...

  5. BZOJ 2318: Spoj4060 game with probability Problem( 概率dp )

    概率dp... http://blog.csdn.net/Vmurder/article/details/46467899 ( from : [辗转山河弋流歌 by 空灰冰魂] ) 这个讲得很好 , ...

  6. 2318: Spoj4060 game with probability Problem

    2318: Spoj4060 game with probability Problem Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 356  Sol ...

  7. BZOJ 2318: Spoj4060 game with probability Problem (概率dp)(博弈论)

    2318: Spoj4060 game with probability Problem Description Alice和Bob在玩一个游戏.有n个石子在这里,Alice和Bob轮流投掷硬币,如果 ...

  8. 【bzoj2318】Spoj4060 game with probability Problem

    题目描述 Alice和Bob在玩一个游戏.有n个石子在这里,Alice和Bob轮流投掷硬币,如果正面朝上,则从n个石子中取出一个石子,否则不做任何事.取到最后一颗石子的人胜利.Alice在投掷硬币时有 ...

  9. 【bzoj2318】Spoj4060 game with probability Problem 概率dp

    题目描述 Alice和Bob在玩一个游戏.有n个石子在这里,Alice和Bob轮流投掷硬币,如果正面朝上,则从n个石子中取出一个石子,否则不做任何事.取到最后一颗石子的人胜利.Alice在投掷硬币时有 ...

随机推荐

  1. day13 python-001 简介及循环、判断、复制等

    Python之路,Day1 = Python基础1 本节内容 1.Python历史简介以及安装.环境变量的配置: 2.Pycharm的简单设置: 3.变量的使用及定义: 4.获取键盘输入及打印: 5. ...

  2. [ZJOI 2018]历史

    题意:给定一棵树和点的\(Access\)次数,求切换链的最大值. 考虑修改时实边与虚边的贡献,用\(LCT\)维护此树. // luogu-judger-enable-o2 #include< ...

  3. error LNK2001: unresolved external symbol _main解决办法(zz)

    error LNK2001: unresolved external symbol _main解决办法   解决外部符号错误:_main,_WinMain@16,__beginthreadex -!t ...

  4. x-杂项-maven-repository-lombok-intro:使用PROJECT LOMBOK减少BOILERPLATE代码

    ylbtech-杂项-maven-repository-lombok-intro:使用PROJECT LOMBOK减少BOILERPLATE代码 1.返回顶部 1. REDUCING BOILERPL ...

  5. iOS疑问

    1.__NSFrozenDictionaryM在数组类簇中是什么角色?

  6. mavlink 笔记1

    Packet Anatomy This is the anatomy of one packet. It is inspired by the CAN and SAE AS-4 standards. ...

  7. sessionStorage 和 localStorage的区别

    sessionStorage.setItem('userName',userName) // 存 sessionStorage.getItem('userName') // 取 sessionStor ...

  8. PAT甲级——A1137 Final Grading【25】

    For a student taking the online course "Data Structures" on China University MOOC (http:// ...

  9. 2019-8-31-win2d-通过-CanvasActiveLayer-画出透明度和裁剪

    title author date CreateTime categories win2d 通过 CanvasActiveLayer 画出透明度和裁剪 lindexi 2019-08-31 08:52 ...

  10. open 和 release

    我们开始在真实的 scull 函数中使用它们. open 方法   open 方法提供给驱动来做任何的初始化来准备后续的操作. 在大部分驱动中, open 应当 进行下面的工作: 检查设备特定的错误( ...