CF1747E List Generation
题目描述
对于给定的整数 $n$ 和 $m$,我们称一对整数数组 $a$ 和 $b$ 是“好”的,如果它们满足以下条件:
- $a$ 和 $b$ 的长度相同,记为 $k$。
- $k \ge 2$ 且 $a_1 = 0, a_k = n, b_1 = 0, b_k = m$。
- 对于每个 $1 < i \le k$,都有:$a_i \geq a_{i - 1}$,$b_i \geq b_{i - 1}$,且 $a_i + b_i \neq a_{i - 1} + b_{i - 1}$。
请计算所有“好”数组对 $(a, b)$ 的 $|a|$(即长度 $k$)之和。由于答案可能很大,请输出对 $10^9 + 7$ 取模后的结果。
输入格式
输入包含多组测试用例。第一行包含一个整数 $t$ $(1 \leq t \leq 10^4)$,表示测试用例的数量。接下来每个测试用例一行,包含两个整数 $n$ 和 $m$ $(1 \leq n, m \leq 5 \cdot 10^6)$。
保证所有测试用例中 $n$ 的总和不超过 $5 \cdot 10^6$,$m$ 的总和不超过 $5 \cdot 10^6$。
输出格式
对于每个测试用例,输出一个整数,表示所有“好”数组对 $(a, b)$ 的长度之和,对 $10^9 + 7$ 取模。
说明/提示
在第一个测试用例中,所有“好”数组对为:
- $([0, 1], [0, 1])$,长度为 $2$。
- $([0, 1, 1], [0, 0, 1])$,长度为 $3$。
- $([0, 0, 1], [0, 1, 1])$,长度为 $3$。
因此长度之和为 $2 + 3 + 3 = 8$。
由 ChatGPT 4.1 翻译