CF908D New Year and Arbitrary Arrangement
题目描述
给定三个整数 $k$、$p_{a}$ 和 $p_{b}$。
你需要用如下算法构造一个序列:一开始,序列为空。每秒钟,你都做如下操作。以概率 $p_{a}/(p_{a}+p_{b})$ 向序列末尾添加字符 'a';否则(以概率 $p_{b}/(p_{a}+p_{b})$),向序列末尾添加字符 'b'。
一旦序列中“ab”作为子序列的出现次数达到至少 $k$ 次,就停止操作。
请求出最终序列中“ab”作为子序列的出现次数的期望。可以证明,这个期望可以表示为 $P/Q$,其中 $P$ 和 $Q$ 是互质的正整数,且 $Q \not\equiv 0 \pmod{10^9+7}$。输出 $P \cdot Q^{-1} \bmod (10^9+7)$。
输入格式
第一行包含三个整数 $k,p_{a},p_{b}$($1 \leq k \leq 1000$,$1 \leq p_{a},p_{b} \leq 1000000$)。
输出格式
输出一个整数,即本题的答案。
说明/提示
对于第一个样例,我们会一直向序列中添加字符,直到首次出现子序列“ab”。例如,获得序列“ab”的概率为 $1/4$,“bbab”的概率为 $1/16$,“aab”的概率为 $1/8$。注意,像“aabab”这样的序列是不可能的,因为当出现前缀“aab”时,算法已经终止。
所有有效序列中“ab”作为子序列出现次数的期望为 $2$。
对于第二个样例,答案为 $\frac{341}{100}$。
由 ChatGPT 5 翻译