QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 256 MB Points totaux : 100 Hackable ✓

#17749. 食物大战

Statistiques

Busy Beaver 又在农贸市场制造混乱了!这一次,他在各个摊位之间发起了一场食物大战。

摊位编号从 $1$ 到 $N$,由 $N - 1$ 条道路连接,形成一棵树。换句话说,可以通过道路从任意一个摊位到达另一个摊位,且任意两个摊位之间有且仅有一条简单路径。

Busy Beaver 按以下规则将每个摊位分配给“土豆队”(Team Potato)或“番茄队”(Team Tomato):

  • 他从摊位 $1$ 出发,沿着道路行走,访问每一个摊位,最后回到摊位 $1$。在所有此类路线中,他选择一条总路程最短的路线。
  • 摊位 $1$ 被分配给土豆队。
  • 每当 Busy Beaver 第一次访问一个摊位(摊位 $1$ 除外)时,他会立即将其分配给两个队伍中的一个。为了保持公平,他每次分配新摊位时都会交替分配队伍。也就是说,如果最近分配的摊位属于土豆队,那么下一个新访问的摊位必须分配给番茄队,反之亦然。

你的任务是计算可能的队伍分配方案数。注意,不同的最短路线可能会产生相同的最终分配结果;此类分配方案应仅计数一次。由于答案可能非常巨大,请输出其对 $10^9 + 7$ 取模的结果。

输入格式

第一行包含一个整数 $T$ ($1 \le T \le 10^4$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $N$ ($2 \le N \le 10^5$)。 接下来的 $N - 1$ 行,每行包含两个整数 $u$ 和 $v$ ($1 \le u, v \le N, u \neq v$),表示摊位 $u$ 和 $v$ 之间有一条道路。 所有测试用例的 $N$ 之和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一个整数:可能的最终队伍分配方案数,对 $10^9 + 7$ 取模。

子任务

本题有两个子任务:

  • (10 分):摊位构成一棵以摊位 $1$ 为根的星形图。具体来说,摊位 $1$ 连接了 $N - 1$ 条道路。
  • (20 分):摊位构成一棵以摊位 $1$ 为根的二叉树。具体来说,摊位 $1$ 最多连接 $2$ 条道路,其他每个摊位最多连接 $3$ 条道路。
  • (70 分):无附加限制。

样例

样例输入 1

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

样例输出 1

2
20
8
12

说明

样例包含 $4$ 个测试用例:

  • 测试用例 $1$ 满足第二个子任务(二叉树)。
  • 测试用例 $2$ 满足第一个子任务(星形图)。
  • 测试用例 $3$ 满足第二个子任务(二叉树)。
  • 测试用例 $4$ 满足第三个子任务(无附加限制)。

在第一个测试用例中,一种可能的队伍分配方案如下所示。

一条最短路线为: $1 \to 2 \to 3 \to 2 \to 4 \to 2 \to 1$。

其总长度为 $6$,这是从摊位 $1$ 出发、访问所有摊位并回到摊位 $1$ 的路线中可能的最短长度。

摊位按照首次访问的顺序进行分配: 摊位 $1$ 分配给土豆队。 摊位 $2$ 分配给番茄队。 摊位 $3$ 分配给土豆队。 摊位 $4$ 分配给番茄队。

另一种可能的队伍分配方案是通过在访问摊位 $3$ 之前访问摊位 $4$ 获得的,这会交换它们的队伍。因此,可能的队伍分配方案总数为 $2$。

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.