AT_recruite_2013_pre_b ブロック並べ

题目描述

现在有 $R$ 个红色方块和 $B$ 个蓝色方块。你需要将红色和蓝色方块排成一行。 1. 在任意连续不超过 $rn$ 个方块的区间内,红色方块的数量不能不少于 $rk$ 个。 2. 在任意连续不超过 $bn$ 个方块的区间内,蓝色方块的数量不能不少于 $bk$ 个。 请计算满足上述两个条件的方块排列方案数,并对 $1,000,000,009$ 取模。输入的第 $1$ 行为测试用例数 $T$,接下来有 $T$ 组测试用例。 每组测试用例依次给出 $R$、$B$、$rn$、$rk$、$bn$、$bk$。 对于每组测试用例,输出满足条件的排列方案数对 $1,000,000,009$ 取模后的结果,每组输出占一行。 $1 \leq T \leq 50$ $1 \leq R, B \leq 20$ $1 \leq rn, bn \leq 9$ $1 \leq rk \leq rn$ $1 \leq bk \leq bn$ 示例输入: ``` 6 3 4 2 2 4 3 2 7 5 4 6 5 5 5 4 3 4 3 8 1 9 8 3 2 1 4 2 2 5 5 20 20 9 8 8 7 ``` 示例输出: ``` 1 3 4 0 5 299856304 ```

输入格式

第一行包含一个整数 $T$,表示测试用例数。 接下来 $T$ 行,每行包含六个整数 $R$、$B$、$rn$、$rk$、$bn$、$bk$,分别表示红色方块数量、蓝色方块数量、红色方块限制区间长度、红色方块最小数量、蓝色方块限制区间长度、蓝色方块最小数量。

输出格式

对于每组测试用例,输出一行一个整数,表示满足条件的排列方案数对 $1,000,000,009$ 取模的结果。

说明/提示

- 由于 $R$ 和 $B$ 的范围较小,可以考虑使用动态规划枚举所有可能的排列方式。 - 注意连续区间的限制条件,需要在状态转移时进行判断。 由 ChatGPT 4.1 翻译