AT_arc166_c [ARC166C] LU / RD Marking

题目描述

有一个纵向 $H$ 行、横向 $W$ 列的网格。 在这个网格中,有 $H(W+1)$ 条纵向边和 $W(H+1)$ 条横向边,总共有 $H(W+1) + W(H+1)$ 条边(请参考输入输出示例中的图)。 对于这些边,可以通过以下两种操作给边做标记: - **操作 (1)**:选择一个当前其左侧边和上侧边都没有被标记的格子。将该格子的左侧边和上侧边标记。 - **操作 (2)**:选择一个当前其右侧边和下侧边都没有被标记的格子。将该格子的右侧边和下侧边标记。 操作 (1) 和操作 (2) 可以任意次(包括 $0$ 次)进行。请你求出,最终可能出现的被标记的边的集合的种类数,结果对 $998244353$ 取模。 给定 $T$ 组测试数据,请分别输出每组的答案。

输入格式

输入以如下格式从标准输入读入: > $T$ > $\text{case}_1$ > $\vdots$ > $\text{case}_T$ 每组测试数据为一行: > $H$ $W$

输出格式

请输出 $T$ 行,第 $i$ 行输出第 $i$ 组测试数据最终可能出现的被标记的边的集合的种类数,对 $998244353$ 取模。

说明/提示

### 约束条件 - $1 \leq T \leq 2 \times 10^5$ - $1 \leq H, W \leq 10^6$ ### 样例解释 1 当 $(H, W) = (1, 1)$ 时,最终可能出现的被标记的边的集合有如下 $4$ 种。被标记的边用粗线表示。 ![](https://img.atcoder.jp/arc166/bd84a15ada55c0df6d4e66863053bd59.png) 当 $(H, W) = (2, 3)$ 时,例如如下的边的集合是**可能的**。 ![](https://img.atcoder.jp/arc166/66c77b9132c38d82c36732966ff3ae4f.png) 另一方面,下面这样的边的集合是**不可能的**。 ![](https://img.atcoder.jp/arc166/0029e3cc83a0232231ddf6e280c7f9a8.png) 由 ChatGPT 4.1 翻译