QOJ.ac

QOJ

Limite de temps : 3 s Limite de mémoire : 1024 MB Points totaux : 100

#10269. 简单计数问题

Statistiques

给定一个数组 $A$,你可以执行零次或多次以下操作:

  • 选择一个下标 $i$ ($1 \le i \le |A|$),使得 $A_i = i$,并从数组 $A$ 中删除第 $i$ 个元素。
  • 形式化地,将 $A$ 替换为 $A[1, i-1] + A[i+1, |A|]$,其中 $A[L, R]$ 表示子数组 $[A_L, A_{L+1}, A_{L+2}, \dots, A_R]$,而 $+$ 表示数组拼接。

令 $f(A)$ 表示在最优策略下应用操作后 $A$ 的最小可能长度。

给定整数 $N$ 和 $M$,求所有长度为 $N$ 且满足对于所有 $1 \le i \le N$ 都有 $1 \le A_i \le M$ 的 $M^N$ 个数组的 $f(A)$ 之和。由于答案可能很大,请输出其对 $998244353$ 取模的结果。

输入格式

  • 第一行包含一个整数 $T$,表示测试用例的数量。
  • 每个测试用例的第一行包含两个整数 $N$ 和 $M$。

输出格式

对于每个测试用例,输出一行,表示所有长度为 $N$ 且元素范围在 $M$ 以内的数组的 $f(A)$ 之和,对 $998244353$ 取模。

数据范围

  • $1 \le T \le 10$
  • $1 \le N, M < 998244353$
  • $|N - M| \le 2000$

样例

样例输入 1

9
2 2
2 1
3 1
3 2
3 3
3 5
6 3
23 10
900000000 900000000

样例输出 1

3
0
0
9
44
284
2534
243195864
193285282

说明 1

测试用例 1:共有 $2^2 = 4$ 个可能的数组。它们各自的值为:

  • $f([1, 1]) = 0$。首先应用 $i = 1$ 的操作。然后 $A$ 变为 $[1]$,我们可以再次应用 $i = 1$ 的操作,得到空数组。
  • $f([1, 2]) = 0$。首先应用 $i = 2$ 的操作,然后应用 $i = 1$ 的操作。
  • $f([2, 1]) = 2$。无法进行任何操作。
  • $f([2, 2]) = 1$。应用 $i = 2$ 的操作。

总和为 $3$。

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.