Universal Cup Judging System

Universal Cup

时间限制: 4.0 s 内存限制: 256 MB 总分: 100 可 Hack ✓
统计

Dane jest drzewo o $N$ węzłach i $N - 1$ krawędziach, gdzie każda krawędź $i$ ma poziom złożoności $l_i$. Odległość $d(u, v)$ między dwoma węzłami $u$ i $v$ jest sumą poziomów złożoności wzdłuż jedynej ścieżki między nimi w drzewie. Zauważ, że $d(u, v) = d(v, u)$ oraz $d(v, v) = 0$.

Istnieje $M$ łamigłówek, a każda łamigłówka $i$ wymaga $k_i$ fragmentów informacji, które znajdują się na określonych krawędziach drzewa. Możliwe jest, że na tej samej krawędzi znajduje się wiele fragmentów informacji!

Dla dowolnych dwóch węzłów $S$ i $T$ podróż między $S$ a $T$ jest udana, jeśli wzdłuż ścieżki z $S$ do $T$ zostaną zebrane wszystkie niezbędne fragmenty informacji dla każdej napotkanej łamigłówki. Dokładniej, łamigłówkę uważa się za możliwą do rozwiązania podczas podróży, jeśli wszystkie wymagane fragmenty informacji dla tej łamigłówki zostaną napotkane na ścieżce.

Zadaniem jest obliczenie sumy odległości dla wszystkich udanych podróży między dowolnymi dwoma węzłami $S$ i $T$ (gdzie $1 \le S \le T \le N$), modulo $10^9 + 7$.

Formalnie zadaniem jest obliczenie:

$$\sum_{\substack{1 \le S \le T \le N, \\ \text{journey } (S, T) \text{ is successful}}} d(S, T)$$

Zaczynając od węzła $S$, musisz udać się do innego węzła $T$ wzdłuż jedynej ścieżki w drzewie. Po drodze każdy fragment informacji znajdujący się na krawędziach tej ścieżki zostanie automatycznie zebrany. Aby podróż z $S$ do $T$ została uznana za udaną, musi spełniać następujący warunek:

  • Niech $O$ będzie zbiorem łamigłówek, dla których podczas podróży zebrano co najmniej jeden fragment informacji. Podróż jest udana wtedy i tylko wtedy, gdy zebrano wszystkie fragmenty informacji wymagane do rozwiązania każdej łamigłówki ze zbioru $O$. Innymi słowy, musisz zebrać każdy fragment informacji potrzebny do całkowitego rozwiązania każdej łamigłówki w $O$.

Wejście

Pierwszy wiersz zawiera dwie oddzielone spacjami liczby całkowite $N$ oraz $M$ ($2 \le N \le 10^6, 1 \le M \le 10^6$).

Następnie pojawia się $N - 1$ wierszy, z których każdy zawiera trzy oddzielone spacjami liczby całkowite $a_i, b_i, l_i$ ($1 \le a_i, b_i \le N, 1 \le l_i \le 10^9$), opisujące krawędź $i$ łączącą węzły $a_i$ i $b_i$ o złożoności $l_i$.

Następnie podane są definicje $M$ łamigłówek. Dla każdej łamigłówki $i$ wejście składa się z jednego wiersza zawierającego $k_i$, po którym następuje $k_i$ oddzielonych spacjami liczb całkowitych $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$), gdzie $u_{i_j}$ to indeksy krawędzi, na których znajdują się fragmenty informacji wymagane do rozwiązania łamigłówki.

Tutaj $K$ jest sumą wszystkich wartości $k_i$ po wszystkich łamigłówkach i gwarantowane jest, że $1 \le K \le 10^6$.

Wyjście

Wypisz jeden wiersz zawierający jedną liczbę całkowitą — odpowiedź dla zadania modulo $10^9 + 7$.

Przykład

Przykładowe wejście 1

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

Przykładowe wyjście 1

17

Uwaga

problem_15524_1.png

Rysunek 1. Struktura drzewa. Romby to fragmenty informacji, a wartości na krawędziach to złożoności.

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.