SP15248 SWAP_ESY - Swap (Easy - Level 2)

题目描述

我们来玩一个与非负整数序列有关的游戏。给定两个长度为 $n$ 的非负整数序列 $(a_1, a_2, \ldots, a_n)$ 和 $(b_1, b_2, \ldots, b_n)$。这两个序列中的最大元素都小于 $k$,即 $\max(a_1, a_2, \ldots, a_n) < k$ 且 $\max(b_1, b_2, \ldots, b_n) < k$。 游戏规则是:你可以对每一对位置相同的元素 $a_i$ 和 $b_i$ 进行置换,即交换它们的位置,每次操作花费 1 个单位的代价。目标是使得序列 $a$ 和 $b$ 都成为递增序列,即满足 $a_i \leq a_{i+1}$ 且 $b_i \leq b_{i+1}$。需要注意的是,并不是所有的初始序列组合 $a$ 和 $b$ 都能够通过这个游戏变为递增。 例如,对于序列 (2,0) 和 (0,1),无论如何操作,都无法使得这两个序列同时递增: - 如果不进行任何交换,得到的序列是 (2,0) 和 (0,1),其中 (2,0) 不是递增的。 - 如果仅交换第一个位置的元素,序列变为 (0,0) 和 (2,1),又是 (2,1) 不是递增的。 - 如果仅交换第二个位置的元素,得到的序列为 (2,1) 和 (0,0),同样 (2,1) 不是递增的。 - 如果交换所有元素,结果为 (0,1) 和 (2,0),仍然不是递增序列。 因此,像 (2,0) 和 (0,1) 这样的初始组合无法通过任何操作变为两个递增序列。 现在,给定 $n$ 和 $k$,你需要计算可以通过上述操作变为两个递增序列的初始序列组合 $(a, b)$ 的不同数量。

输入格式

第一行是一个整数 $T$,表示测试用例的数量。接下来是 $T$ 组测试用例。 每个测试用例包含一行两个整数 $n$ 和 $k$,以空格分隔。

输出格式

对于每个测试用例,输出可以成功实现两个序列递增的初始序列组合的数量。由于结果可能很大,请输出结果对 $10^9 + 7$ 取模后的值。

说明/提示

$$1 \leq T \leq 10^5$$ $$1 \leq n, k \leq 10^5$$ **本翻译由 AI 自动生成**