QOJ.ac

QOJ

Time Limit: 4.0 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#4816. Games

統計

给定一棵包含 $n$ 个顶点的树。由于你觉得无事可做,你想在这棵树上玩一个游戏。

在游戏开始前,你需要为每个顶点 $u$ 分配一个标签 $\ell_u \in \{0, 1, 2, \dots, m - 1, m\}$。

游戏包含 $m + 1$ 个阶段,编号从 $0$ 到 $m$。在第 $i$ 个阶段,所有满足 $\ell_u \le i$ 的顶点 $u$ 将被涂成黑色。此时,如果对于每一对未涂色的顶点 $x$ 和 $y$,都存在一条从 $x$ 到 $y$ 且不经过任何黑色顶点的路径,则游戏继续。否则,你将输掉游戏,游戏立即结束。如果你能让游戏在所有阶段结束后继续,你就赢了。

你发现你赢得游戏的能力仅取决于你最初如何为树上的顶点分配标签。在接下来的 $q$ 天里,你想要重新标记顶点并玩游戏。在第 $i$ 天,你首先给顶点 $a_i$ 分配标签 $b_i$。然后,你想要计算有多少种方式为剩余的顶点分配标签,使得你能赢得游戏。由于数字可能很大,你只需要输出答案对 $998\,244\,353$ 取模的结果。

输入格式

第一行包含三个整数 $n, m$ 和 $q$ ($1 \le n, q \le 10^5, 1 \le m \le 30$)。

接下来的 $n - 1$ 行,每行包含两个整数 $x$ 和 $y$ ($1 \le x, y \le n, x \neq y$),表示顶点 $x$ 和 $y$ 之间有一条边。保证给定的图是一棵树。

接下来的 $q$ 行,每行包含两个整数 $a_i$ 和 $b_i$ ($1 \le a_i \le n, 0 \le b_i \le m$),表示一次查询。

输出格式

对于每次查询,输出一行,包含一个整数,表示答案对 $998\,244\,353$ 取模的结果。

样例

样例输入 1

3 2 5
1 2
3 2
3 1
1 0
2 0
2 1
2 2

样例输出 1

7
9
5
8
9

样例输入 2

6 6 6
6 1
1 3
2 6
4 2
5 2
2 1
3 2
5 3
5 6
5 3
1 1

样例输出 2

896
2820
2433
1218
2433
2272

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.