SP15249 SWAP_MED - Swap (Medium - Level 200)
题目描述
我们来进行一个关于非负整数序列的游戏。现有两个长度为 $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$ 的值。目标是让序列 $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) 仍不递增。
因此,对于初始序列 (2,0) 和 (0,1),无法通过任何方案使得两个序列同时递增。
现在,给定整数 $n$ 和 $k$,请你计算有多少种不同的初始序列对 $(a, b)$ 能够通过这场游戏变为递增序列。
输入格式
第一行输入一个整数 $T$,表示测试用例的数量。接下来 $T$ 行,每行有两个整数 $n$ 和 $k$,用空格隔开。
输出格式
对于每个测试用例,输出能够解决的不同初始序列对 $(a, b)$ 的数量。由于结果可能非常大,请输出结果对 $10^9 + 7$ 取模后的值。
说明/提示
- $1 \leq T \leq 10^5$
- $1 \leq n \leq 10^5$
- $1 \leq k \leq 10^5$
**本翻译由 AI 自动生成**