QOJ.ac

QOJ

時間限制: 4.0 s 記憶體限制: 512 MB 總分: 100 可 Hack ✓

#9847. 安全计划

统计

Nikuniku 想要为仓库制定一个安保计划。仓库可以表示为一个有 $n$ 行 $m$ 列的网格。左上角的单元格为 $(1, 1)$,右下角的单元格为 $(n, m)$。

安保计划是指在网格中选择一些单元格,并在每个被选中的单元格中放置一个摄像头。

当在单元格 $(i, j)$ ($1 \le i \le n, 1 \le j \le m$) 放置摄像头时,Nikuniku 可以选择一个单元格 $(p, q)$ ($1 \le p \le n, 1 \le q \le m$) 作为其参数。当且仅当以下两个条件同时满足时,单元格 $(x, y)$ 被该摄像头保护: 1. $\min(i, p) \le x \le \max(i, p)$ 2. $\min(j, q) \le y \le \max(j, q)$

注意,$(p, q)$ 不一定与 $(i, j)$ 不同,且一旦配置后就不能修改。不同的摄像头可以配置不同的参数。

一个安保计划是完美的,当且仅当所选的摄像头可以配置合适的参数,并且所有 $n \times m$ 个单元格都能被至少一个摄像头保护。

对于一个完美的安保计划,如果 Nikuniku 无法移除计划中的任何一个摄像头,并通过调整剩余摄像头的参数使计划依然保持完美,则称其为最小安保计划。

Nikuniku 想知道不同最小安保计划的数量。

当且仅当一个单元格在一个计划中被选中,而在另一个计划中未被选中时(无论参数如何),这两个计划被视为不同。

输入格式

第一行包含一个整数 $t$ ($1 \le t \le 10^5$),表示测试用例的数量。 每个测试用例包含一行,包含两个整数 $n$ 和 $m$ ($1 \le n, m \le 10^9$),表示网格的大小。

输出格式

对于每个测试用例,输出一个整数,表示该测试用例的答案对 $998244353$ 取模的结果。

样例

输入 1

6
2 2
4 4
8 8
3 3
3 5
3 7

输出 1

4
129
78769
10
80
273

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.