QOJ.ac

QOJ

時間限制: 4.0 s 記憶體限制: 256 MB 總分: 100 可 Hack ✓

#15524. 神奇的谜题

统计

给定一棵拥有 $N$ 个节点和 $N - 1$ 条边的树,其中每条边 $i$ 都有一个复杂度 $l_i$。两个节点 $u$ 和 $v$ 之间的距离 $d(u, v)$ 定义为树上连接它们的唯一路径上所有边的复杂度之和。需要注意的是,$d(u, v) = d(v, u)$ 且 $d(v, v) = 0$。

有 $M$ 个谜题,每个谜题 $i$ 需要 $k_i$ 个信息碎片,这些信息碎片位于树上的特定边上。同一条边上可能会有多个信息碎片!

对于任意两个节点 $S$ 和 $T$,如果从 $S$ 到 $T$ 的路径上,所有遇到的谜题所需的信息碎片都被收集完整,则称 $S$ 和 $T$ 之间的旅程是成功的。具体来说,如果在路径上遇到了某个谜题的至少一个信息碎片,且该谜题所需的所有信息碎片都在路径上被遇到,则该谜题在旅程中被认为是可解的。

任务是计算所有成功旅程的起点 $S$ 和终点 $T$(其中 $1 \le S \le T \le N$)之间的距离之和,结果对 $10^9 + 7$ 取模。

形式化地,任务是计算:

$$\sum_{\substack{1 \le S \le T \le N, \\ \text{旅程 } (S, T) \text{ 是成功的}}} d(S, T)$$

从节点 $S$ 出发,你需要沿着树上的唯一路径前往另一个节点 $T$。沿途,位于该路径边上的任何信息碎片都将被自动收集。为了使从 $S$ 到 $T$ 的旅程被认为是成功的,它必须满足以下条件:

  • 设 $O$ 为在旅程中收集到至少一个信息碎片的谜题集合。当且仅当解决集合 $O$ 中每个谜题所需的所有信息碎片都已被收集时,该旅程才是成功的。换句话说,你必须收集到完全解决 $O$ 中每个谜题所需的每一件信息。

输入格式

第一行包含两个空格分隔的整数 $N$ 和 $M$($2 \le N \le 10^6$,$1 \le M \le 10^6$)。

接下来 $N - 1$ 行,每行包含三个空格分隔的整数 $a_i, b_i, l_i$($1 \le a_i, b_i \le N$,$1 \le l_i \le 10^9$),描述连接节点 $a_i$ 和 $b_i$ 且复杂度为 $l_i$ 的边 $i$。

接下来是 $M$ 个谜题的定义。对于每个谜题 $i$,输入首先包含一行,其中有一个整数 $k_i$,后面跟着 $k_i$ 个空格分隔的整数 $u_{i_1}, u_{i_2}, \dots, u_{i_{k_i}}$($0 \le k_i \le K$,$1 \le u_{i_j} \le N - 1$),其中 $u_{i_j}$ 是解决该谜题所需信息碎片所在的边的编号。

这里 $K$ 是所有谜题的 $k_i$ 值之和,保证 $1 \le K \le 10^6$。

输出格式

输出一行,包含一个整数,即答案对 $10^9 + 7$ 取模后的结果。

样例

输入样例 1

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

输出样例 1

17

说明

图 1. 树的结构。菱形表示信息碎片,边上的数值表示复杂度。

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.