CF1498C Planar Reflections

题目描述

Gaurang 生活在一个神秘的宇宙中。他面对着 $n$ 个连续的二维平面。他向这些平面发射了一个衰变年龄为 $k$ 的粒子。 粒子可以直接穿过一个平面,然而,每个平面都会产生一个完全相同的粒子副本,该副本朝相反方向运动且衰变年龄为 $k-1$。如果粒子的衰变年龄等于 $1$,则不会产生副本。 例如,如果有两个平面,且发射了一个衰变年龄为 $3$ 的粒子(向右运动),过程如下(这里 $D(x)$ 表示一个衰变年龄为 $x$ 的粒子): 1. 第一个平面产生一个向左的 $D(2)$,并让 $D(3)$ 继续向右运动; 2. 第二个平面产生一个向左的 $D(2)$,并让 $D(3)$ 继续向右运动; 3. 第一个平面让 $D(2)$ 继续向左运动,并产生一个向右的 $D(1)$; 4. 第二个平面让 $D(1)$ 继续向右运动($D(1)$ 不会产生任何副本)。 最终,粒子的多重集 $S$ 为 $\{D(3), D(2), D(2), D(1)\}$。(参见注释中的测试案例图示说明。) 当平面数量过大时,Gaurang 无法应对这种复杂情况。请帮助 Gaurang 在给定 $n$ 和 $k$ 的情况下,计算多重集 $S$ 的大小。 由于多重集的大小可能非常大,你需要输出其对 $10^9+7$ 取模的结果。 注意:粒子可以在平面之间来回运动而不会相互碰撞。

输入格式

输入的第一行包含测试用例的数量 $t$($1 \le t \le 100$)。随后 $t$ 行,每行包含两个整数 $n$ 和 $k$($1 \le n, k \le 1000$)。 此外,所有测试用例的 $n$ 之和不超过 $1000$,所有测试用例的 $k$ 之和不超过 $1000$。同一测试中的所有测试用例均不同。

输出格式

输出 $t$ 个整数。第 $i$ 个整数应为第 $i$ 个测试用例的答案。

说明/提示

让我们解释第一个样例中的四个测试用例。 测试用例 1:($n = 2$,$k = 3$)已在题目描述中解释。 参见下图模拟过程。每条不同颜色的直线代表不同粒子的路径。可以看到,多重集中共有四个不同的粒子。注意,反射粒子之间的垂直间距仅用于视觉清晰(如前所述,任何两个不同的粒子都不会相互碰撞)。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1498C/df04d989fa23babd02f74b8b57d3f2d7886e9f14.png) 测试用例 2:($n = 2$,$k = 2$)解释如下: 1. 第一个平面产生一个向左的 $D(1)$,并让 $D(2)$ 继续向右运动; 2. 第二个平面产生一个向左的 $D(1)$,并让 $D(2)$ 继续向右运动; 3. 第一个平面让 $D(1)$ 继续向左运动($D(1)$ 不会产生任何副本)。 最终的多重集 $\{D(1), D(1), D(2)\}$ 的大小为三。 测试用例 3:($n = 3$,$k = 1$),有三个平面,但衰变年龄仅为 $1$。因此粒子穿过平面时不会产生新副本。因此,答案为 $1$。 测试用例 4:($n = 1$,$k = 3$)只有一个平面。粒子产生一个向左的新副本。多重集 $\{D(2), D(3)\}$ 的大小为 $2$。 翻译由 DeepSeek V3 完成