#P13804. [codefestival2017 qualb] Popping Balls
[codefestival2017 qualb] Popping Balls
AT_
题目描述
有 个球排成一行。最左边的 个球被涂成红色,最右边的 个球被涂成蓝色。
你需要进行如下操作:
- 首先,选择满足 的整数 。
- 然后,重复如下步骤 次:每一步,你可以从最左边第 个、 个(如果存在)或 个(如果存在)(均为从 开始编号)的球中选一个,把这个球送给“すぬけ君”。
问你有多少种不同的方式把球送给“すぬけ君”?请你输出方案数对 取模的结果。
若某个位置第 次送出的球颜色不同,则认为对应的两种方式是不同的。特别地,选择的 并不会影响方案的区分。另外,同色的球不加区分。
输入格式
输入由一行组成,格式如下:
输出格式
输出答案。
输入输出样例 #1
输入 #1
3 3
输出 #1
20
输入输出样例 #2
输入 #2
4 4
输出 #2
67
输入输出样例 #3
输入 #3
7 9
输出 #3
7772
输入输出样例 #4
输入 #4
1987 1789
输出 #4
456315553
说明/提示
限制
样例解释 1
有 个红球和 个蓝球,共有 种不同的赠送方法,所有情况都可以实现。下面是其中一种操作示例(r 表示红球, b 表示蓝球):
- 选择 。
- 初始排列为
rrrbbb。 - 将第 个球(
r)送出,队列变为rrbbb。 - 将第 个球(
b)送出,队列变为rrbb。 - 将第 个球(
r)送出,队列变为rbb。 - 将第 个球(
b)送出,队列变为rb。 - 将第 个球(
r)送出,队列变为b。 - 将第 个球(
b)送出,队列变为空。
在上述方法中,“すぬけ君”最终获得球的顺序为 rbrbrb。
样例解释 2
有 个红球和 个蓝球,共有 种赠送方法。其中,bbrrbrbr、brbrbrbr、brrbbrbr 这三种排列无法实现。
由 ChatGPT 5 翻译