luogu#P4260. [Code+#3] 博弈论与概率统计

[Code+#3] 博弈论与概率统计

题目描述

Alice 和 Bob 在玩一个双人游戏。每一轮中,Alice 有 pp 的概率胜利,1p1-p 的概率失败,不会出现平局。

双方初始时各有 00 分,当一个人胜利的时候,他会获得一分,失败则扣掉一分。遗憾的是,博弈论世界的人目前是无法理解负数的,因此,如果某个人输掉一轮比赛的时候他只有 00 分,那么他就不会被扣分(对方会照常加一分)。游戏一共要进行 N+MN+M 轮,Alice 想请你帮她算算在游戏结束时她的得分的数学期望。

“这算啥,我小 L 分分钟搞定!”。比小 L 更熟练的你当然也是随手就算出来了,但就在你打算告诉 Alice 答案之前,博弈论世界之神——temporaryDO 出现了,他给大家带来了一个重要信息:这 N+MN+M 轮游戏中, Alice 恰好赢了 NN 轮!

熟知条件概率那套理论的你立刻注意到,你需要修改自己的计算方法来得到正确的答案了。

为了避免精度问题,请将结果对 109+710^9+7 取模。即,我们的数据保证答案是一个有理数 pq\frac{p}{q},且有 109+7q10^9+7\nmid q,你只需要找到一个整数 x[0,109+7)x\in [0, 10^9+7) 使得 qxp(mod109+7)qx\equiv p\pmod{10^9+7} 即可。

输入格式

输入的第一行包含两个正整数 TT, PP',其中 TT 表示数据组数,P1000\frac{P'}{1000} 表示 pp ,即 Alice 在每轮游戏中的获胜概率。

接下来 TT 行,每行两个非负整数 N,MN,M,表示一组数据。

输出格式

输出 TT 行,每行一个整数,表示对应数据的答案。

3 500
1 1
2 3
4 4
500000004
200000002
728571435

提示

每一轮游戏 Alice 均有 12\frac{1}{2} 的概率胜利。

  • 对于第一组数据,Alice 的胜利可能在第一轮或第二轮,并且概率相等。若她在第一轮胜利,则最终得分为 00,否则她的得分为 11。故期望为 12\frac{1}{2},验证发现 2×5000000041(mod109+7)2\times 500000004\equiv 1\pmod{10^9+7}
  • 对于第二组数据,所求期望为 35\frac{3}{5}
  • 对于第三组数据,所求期望为 9370\frac{93}{70}

【数据范围与约定】

  1. 对于 10% 的数据,N,M,T50N,M,T\le 50
  2. 对于另外 20% 的数据,N,M,T2000N,M,T\le 2000
  3. 对于另外 20% 的数据,N,M105N,M\le 10^5NM200|N-M|\le 200T2×105T\le 2\times 10^5
  4. 对于另外 20% 的数据,N,M,T5×104N,M,T\le 5\times 10^4
  5. 对于 100% 的数据,N+M,T2.5×105N+M,T\le 2.5\times 10^50<P<10000 < P' < 1000

Credit:https://www.luogu.org/discuss/show?postid=35727