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 翻译