QOJ.ac

QOJ

Time Limit: 0.3 s Memory Limit: 128 MB Total points: 100

#952. 春季大扫除

Statistics

春季大扫除通常是我们生活中最无聊的事情,但今年除外,因为 Flóra 和她的母亲在地毯下发现了一棵布满灰尘的古老树状图。

这棵树有 $N$ 个节点(编号从 $1$ 到 $N$),由 $N-1$ 条边连接。这些边积满了灰尘,所以 Flóra 的母亲决定清理它们。

清理任意树的边是通过重复以下过程完成的: 她选择 $2$ 个不同的叶子节点(如果一个节点通过一条边连接到且仅连接到一个其他节点,则称该节点为叶子节点),并清理位于它们之间最短路径上的每一条边。如果这条路径有 $d$ 条边,那么清理这条路径的代价就是 $d$。

她不想伤害树的叶子节点,因此她选择每一个叶子节点至多一次。当所有的边都被清理干净时,这棵树就被清理完毕了。清理的总代价是所有被清理路径的代价之和。

Flóra 认为他们发现的这棵树太小且太简单了,所以她构想了 $Q$ 种变体。 在第 $i$ 种变体中,她在原始树的基础上总共增加了 $D_i$ 个额外的叶子节点:对于每一个新叶子,她选择原始树中的一个节点,并通过一条边将该节点与新叶子连接起来。注意,在此步骤中,某些节点可能不再是叶子节点。

对于所有这 $Q$ 种变体,我们感兴趣的是清理该树所需的最小代价。

输入格式

第一行包含两个空格分隔的整数 $N$ 和 $Q$。 接下来的 $N-1$ 行,每行包含两个空格分隔的整数 $u$ 和 $v$,表示节点 $u$ 和 $v$ 之间有一条边。 接下来的 $Q$ 行描述了各种变体:第 $i$ 行的第一个整数是 $D_i$。随后是 $D_i$ 个空格分隔的整数:如果第 $j$ 个数字是 $a_j$,则意味着 Flóra 在节点 $a_j$ 上增加了一个新叶子。我们可以在同一个节点上增加多个叶子。 在每次变体之后,Flóra 会重置并重新在原始树上增加额外的叶子。

输出格式

你应该输出 $Q$ 行。第 $i$ 行输出一个整数:清理第 $i$ 种变体树所需的最小代价。如果树无法被清理,则输出 $-1$。

样例

样例输入 1

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

样例输出 1

-1
10
8

说明

下图展示了第二个变体。 一种可能的清理方案是清理叶子 $1-6$、$A-7$ 和 $B-3$ 之间的路径。

数据范围

$3 \le N \le 10^5$ $1 \le Q \le 10^5$ $1 \le u, v \le N$ $1 \le D_i \le 10^5$(对于所有 $i$) $\sum_{i=1}^{Q} D_i \le 10^5$ $1 \le a_j \le N$(对于每个变体中的所有 $j$)

子任务

子任务 分值 约束
1 0 样例
2 9 $Q = 1$,对于每个 $i$ ($2 \le i \le N$),节点 $1$ 和 $i$ 之间都有边。Flóra 不会在节点 $1$ 上增加任何额外叶子
3 9 $Q = 1$,对于每个 $i$ ($1 \le i < N$),节点 $i$ 和 $i+1$ 之间都有边。Flóra 不会在节点 $1$ 或节点 $N$ 上增加任何额外叶子
4 16 $N \le 20000$ 且 $Q \le 300$
5 19 原始树是以节点 $1$ 为根的完美二叉树(即每个内部节点恰好有 $2$ 个子节点,且每个叶子到根的距离相同)
6 17 $D_i = 1$(对于所有 $i$)
7 30 无额外约束

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.