QOJ.ac

QOJ

Límite de tiempo: 1.0 s Límite de memoria: 256 MB Puntuación total: 100

#13142. 清洁机器人

Estadísticas

新的 ICPC 小镇有 $N$ 个路口(编号从 $1$ 到 $N$),由 $N-1$ 条道路连接。从任意一个路口出发,都可以通过一条或多条道路到达其他任何路口。为了确保所有路口都得到良好的维护,政府环境署计划部署他们最新的先进清洁机器人。除了清洁能力外,每个机器人还具备移动能力,使其能够从一个路口移动到由道路连接的任何其他路口。然而,正如你可能猜到的,这种机器人并不便宜。因此,该机构正在考虑以下部署计划。

令 $T_k$ 为第 $k$ 个机器人需要清洁的路口集合(也称为机器人的任务),且 $|T_k| \ge 1$ 为 $T_k$ 中的路口数量。$T_k$ 中的路口构成一条路径,即存在一个序列 $v_1, v_2, \dots, v_{|T_k|}$,其中 $v_i \in T_k$ 且对于所有 $i \neq j$ 都有 $v_i \neq v_j$,使得该序列中每两个相邻的路口都由一条道路连接。所有机器人的任务集合 $T$ 的并集等于 ICPC 小镇所有路口的集合。另一方面,没有两个机器人共享同一个路口,即如果 $i \neq j$,则 $T_i \cap T_j = \emptyset$。

为了避免市民对低效操作的投诉,部署计划必须是“不可约的”(irreducible);换句话说,不存在两个机器人 $i$ 和 $j$,使得 $T_i \cup T_j$ 构成一条(更长的)路径。注意,只要所有任务都是不可约的,机构并不关心所使用的机器人数量是否最少。

你的任务是根据给定的小镇布局,计算可行部署计划的数量。一个计划是可行的,当且仅当它满足上述所有要求。

例如,设 $N = 6$,道路为 $\{(1, 3), (2, 3), (3, 4), (4, 5), (4, 6)\}$。如下图所示,共有 5 种可行的部署计划。

  • 第一个计划使用 2 个机器人(图中标记为 A 和 B)来清洁 $\{1, 2, 3\}$ 和 $\{4, 5, 6\}$。
  • 第二个计划使用 3 个机器人(图中标记为 A、B 和 C)来清洁 $\{1, 3, 4, 6\}$、$\{2\}$ 和 $\{5\}$。
  • 第三个计划使用 3 个机器人来清洁 $\{1, 3, 4, 5\}$、$\{2\}$ 和 $\{6\}$。
  • 第四个计划使用 3 个机器人来清洁 $\{1\}$、$\{2, 3, 4, 6\}$ 和 $\{5\}$。
  • 第五个计划使用 3 个机器人来清洁 $\{1\}$、$\{2, 3, 4, 5\}$ 和 $\{6\}$。

在这种情况下,没有其他计划是可行的。例如,计划 $\{\{1, 3\}, \{2\}, \{4, 5, 6\}\}$ 是不可行的,因为任务 $\{1, 3\}$ 和 $\{2\}$ 可以合并成一条更长的路径 $\{1, 3, 2\}$。计划 $\{\{1, 2, 3, 4\}, \{5\}, \{6\}\}$ 也是不可行的,因为 $\{1, 2, 3, 4\}$ 不是一条路径。

输入格式

输入的第一行包含一个整数:$N$ ($1 \le N \le 100\,000$),表示路口的数量。 接下来的 $N-1$ 行,每行包含两个整数:$u_i, v_i$ ($1 \le u_i < v_i \le N$),表示连接路口 $u_i$ 和路口 $v_i$ 的道路。保证从一个路口出发,可以通过一条或多条道路到达其他任何路口。

输出格式

输出一行一个整数,表示可行部署计划的数量。由于输出可能很大,你需要将结果对 $1\,000\,000\,007$ 取模。

样例

样例输入 1

6
1 3
2 3
3 4
4 5
4 6

样例输出 1

5

说明 1

这是题目描述中的示例。

样例输入 2

5
1 2
2 3
2 4
4 5

样例输出 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.