#P0708. 至少k个ab子序列

至少k个ab子序列

题目描述

给定三个数 k,pa,pbk,p_a,p_b

有一个字符串 ss,初始时字符串 ss 是一个空串。

接下来你要进行若干次操作,每次操作:

  • papa+pb\dfrac{p_a}{p_a+p_b} 的概率往字符串 ss 的末尾添加一个字符 a
  • pbpa+pb\dfrac{p_b}{p_a+p_b} 的往字符串 ss 的末尾添加一个字符 b

当出现了 k\ge k 个形如 ab 的子序列(不用连续)时停止。

停止时你需要计算字符串 ss 中子序列 ab 的个数。求最终字符串 ss 中子序列 ab 的个数的期望值。

答案对 109+710^9+7 取模。

具体来说,最终字符串 ss 中子序列 ab 的个数的期望值可以表示成一个分数 PQ\dfrac{P}{Q}(其中 PPQQ 互质),你需要输出 PQ1 mod (109+7)P \cdot Q^{-1} \text{ mod } (10^9+7) 的结果。

输入格式

一行,三个整数 kkpap_apbp_b,以空格分隔(1k1000,1pa,pb1061 \le k \le 1000, 1 \le p_a, p_b \le 10^6)。

输出格式

输出一个整数,表示答案。

样例

1 1 1
2
3 1 4
370000006

说明/提示

样例解释

在第一个样例中,我们将不断向序列添加内容,直到至少出现一次子序列 'ab'。例如,我们以概率 1/4 得到序列 'ab',以概率 1/16 得到 'bbab',以概率 1/8 得到 'aab'。请注意,我们不可能以 'aabab' 这样的序列结束,因为一旦出现前缀 'aab',我们就会停止算法。

在所有有效序列中,'ab' 出现的期望次数为 2。

对于第二个样例,答案等于 341100\dfrac{341}{100}

数据规模与约定

  • 对于 20%20\% 的数据,k10,pa,pb10k \le 10, p_a, p_b \le 10
  • 对于 50%50\% 的数据,k100,pa,pb1000k \le 100, p_a, p_b \le 1000
  • 对于 100%100\% 的数据,1k1000,1pa,pb1061 \le k \le 1000, 1 \le p_a, p_b \le 10^6