#ATarc166c. [ARC166C] LU / RD Marking
[ARC166C] LU / RD Marking
题目描述
有一个纵向 行、横向 列的网格。
在这个网格中,有 条纵向边和 条横向边,总共有 条边(请参考输入输出示例中的图)。
对于这些边,可以通过以下两种操作给边做标记:
- 操作 (1):选择一个当前其左侧边和上侧边都没有被标记的格子。将该格子的左侧边和上侧边标记。
- 操作 (2):选择一个当前其右侧边和下侧边都没有被标记的格子。将该格子的右侧边和下侧边标记。
操作 (1) 和操作 (2) 可以任意次(包括 次)进行。请你求出,最终可能出现的被标记的边的集合的种类数,结果对 取模。
给定 组测试数据,请分别输出每组的答案。
输入格式
输入以如下格式从标准输入读入:
每组测试数据为一行:
输出格式
请输出 行,第 行输出第 组测试数据最终可能出现的被标记的边的集合的种类数,对 取模。
样例 1
输入
2
1 1
2 3
输出
4
800
样例 2
输入
3
123 456
654 321
1000000 1000000
输出
60549740
298307903
656009181
说明/提示
约束条件
样例解释 1
当 时,最终可能出现的被标记的边的集合有如下 种。被标记的边用粗线表示。

当 时,例如如下的边的集合是可能的。

另一方面,下面这样的边的集合是不可能的。

由 ChatGPT 4.1 翻译