CF336D Vasily the Bear and Beautiful Strings
题目描述
Vasily the Bear 喜欢美丽的字符串。字符串 $s$ 被称为美丽的,当且仅当满足以下条件:
1. 字符串 $s$ 仅包含字符 $0$ 和 $1$,其中字符 $0$ 恰好出现 $n$ 次,字符 $1$ 恰好出现 $m$ 次。
2. 通过若干次(也可以为零次)修改操作,可以将字符串 $s$ 转换成字符 $g$。字符 $g$ 只可能是 $0$ 或 $1$。
对长度至少为 $2$ 的字符串进行一次"修改操作"定义如下:我们将字符串的最后两个字符替换为且仅替换为一个新字符。如果被替换的两个字符均为 $0$,则新字符为 $1$;否则,新字符为 $0$。例如,一次修改可以将字符串 "01010" 变为 "0100",两次修改可以变为 "011"。字符串长度小于 $2$ 时不能进行修改。
现在请帮助 Vasily 计算有多少个美丽的字符串。由于答案可能很大,你需要输出答案对 $1000000007$ ($10^9+7$) 取模的结果。
输入格式
输入第一行包含三个以空格分隔的整数 $n$、$m$、$g$,满足 $0 \leq n, m \leq 10^5, n + m \geq 1, 0 \leq g \leq 1$。
输出格式
输出一个整数,表示满足条件的美丽字符串数量,对 $1000000007$ ($10^9+7$) 取模。
说明/提示
在第一个样例中,所有美丽的字符串为:"01", "10"。
在第二个样例中,所有美丽的字符串为:"0011", "1001", "1010", "1100"。
在第三个样例中,没有美丽的字符串。
由 ChatGPT 5 翻译