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. log4j2 按日期分割,自动清理历史文件

    方式一:定义CronTriggeringPolicy <?xml version="1.0" encoding="UTF-8"?> <Conf ...

  2. 运维人员最常用150个linux命令汇总

    命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) l ...

  3. Redis-GEO

    一. Redis的GEO特性 Redis3.2版本提供了GEO功能,支持存储地理位置信息用来实现诸如摇一摇,附近位置这类依赖于地理位置信息的功能.二. 命令2.1 增加地理位置信息 命令:geoadd ...

  4. sql数据库还原,出现媒体簇的结构不正确,SQLServer无法处理此媒体簇的解决方法

    问题: sql数据库还原,出现媒体簇的结构不正确,SQL Server无法处理此媒体簇. 异常如下图. 造成问题的原因: 我的电脑上安装了sql2005和sql2008,问题就在于我用sql2008的 ...

  5. 修改sql server表字段的字符串

    网站标题被注入黑链接,使用sql脚本update修改字段内的字符串截取UPDATE [qds0460132_db].[dbo].[Blood_News]   SET [Blood_Name] = SU ...

  6. idea运行tomcat,控制台中文乱码

    加入参数:-Dfile.encoding=UTF-8

  7. Maven父子工程配置文件详解

    项目骨架搭建成功之后. 因为父工程管理子工程.子工程相当于继承于子工程,所以子工程可以调用父工程里面的东西.那么就可以将jar包对应的配置文件书写到父工程的pom.xml文件中,注意:父工程的打包方式 ...

  8. Andriod Fragment 的作用和基本用法

    1.什么是Fragment: Fragment (片段)在Google Android 开发指南中的解释是:片段是Activity中的一部分,一个Activity中可以有多个Fragment.一个Fr ...

  9. AutowireCapableBeanFactory 根据名称:自动装配的BeanFactory,其实也是对BeanFactory的增强

    //自动装配的Bean 工厂 public interface AutowireCapableBeanFactory extends BeanFactory { //工厂没有自动装配的Bean int ...

  10. 关于type return to continue,or q <return> to quit

    由于GDB要打印的信息被分页了 所以需要设置不分页显示 set pagination off