Задачи
Вычисления Китти на дереве
Вычисления Китти на дереве
У Китти есть дерево $T$, состоящее из $n$ вершин, пронумерованных от $1$ до $n$. Ее друг Алекс дал ей $q$ множеств, каждое из которых содержит набор вершин. Китти нужно вычислить следующее выражение для каждого набора:
$$
(\sum_{\{u,v\}} u \cdot v \cdot dist(u,v)) \mod (10^9 + 7)
$$
где:
\begin{itemize}
\item $\{u, v\}$ обозначает неупорядоченную пару вершин из множества.
\item $dist(u, v)$ обозначает количество ребер на уникальном (кратчайшем) пути между узлами $u$ и $v$.
\end{itemize}
По заданному дереву $T$ и $q$ множествам из $k$ различных вершин вычислите значение выражения для каждого набора. Значение выражения следует выводить по модулю $10^9 + 7$ для каждого теста в новой строке.
\InputFile
Первая строка содержит два целых числа: количество вершин $n~(1 \le n \le 2 \cdot 10^5)$ в дереве $T$ и количество запросов $q~(1 \le q \le 10^5)$.
Каждая из $n - 1$ последующих строк содержит два целых числа $a$ и $b~(1 \le a, b \le n)$, описывающих неориентированное ребро между вершинами $a$ и $b$.
Далее следуют $2 \cdot q$ строк. Каждый тест задается двумя строками в следующем формате:
\begin{itemize}
\item Первая строка содержит размер набора $k$;
\item Вторая строка содержит $k$ целых чисел --- элементы множества $(1 \le k_i \le 10^5$, сумма $k_i$ по всем $q$ не превышает $2 \cdot 10^5)$.
\end{itemize}
\OutputFile
Выведите $q$ строк, где $i$-ая строка содержит значение выражения для $i$-го запроса по модулю $10^9 + 7$.
Входные данные #1
7 3 1 2 1 3 1 4 3 5 3 6 3 7 2 2 4 1 5 3 2 4 5
Выходные данные #1
16 0 106