Сума відстаней#11204

Сума відстаней

1 секунда
128 мегабайтів
Складна

У Бесі є колекція зв'язних неорієнтованих графів G_1, G_2, ..., G_k (2 ≤ k ≤ 5 * 10^4). Для кожного i (1 ≤ i ≤ k), G_i має рівно n_i (n_i ≥ 2) вершин, позначених 1..n_i, і m_i (m_i ≥ n_i − 1) ребер. Кожен G_i може містити цикли, але не має двох і більше ребер між парою вершин.

Ельза створює новий неорієнтований граф G з n_1 * n_2 * ... * n_k вершинами, кожна з яких позначена k-плетом (j_1, j_2, ..., j_k), де 1 ≤ j_i ≤ n_i. У G дві вершини (j_1, j_2, ..., j_k) і (k_1, k_2, ..., k_k) з'єднані ребром, якщо для всіх i (1 ≤ i ≤ k), j_i і k_i з'єднані ребром в G_i.

Відстань між двома вершинами в G, які лежать в одній і тій же зв'язній компоненті, визначається як мінімальна кількість ребер на шляху з однієї вершини в іншу. Обчисліть суму відстаней між вершиною (1, 1, ..., 1) і кожною вершиною в цій же компоненті в G за модулем 10^9 + 7.

Вхідні дані

Перший рядок містить k, кількість графів.

Опис кожного графа починається з n_i і m_i в одному рядку, за яким слідують m_i ребер.

Послідовні графи розділені порожніми рядками для читабельності. Гарантовано, що ∑ n_i ≤ 10^5 і ∑ m_i ≤ 2 * 10^5.

Вихідні дані

Сума відстаней від вершини (1, 1, ..., 1) до кожної вершини, досяжної від неї, за модулем 10^9 + 7.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Примітка

Приклад 1. G містить 2 * 4 = 8 вершин, 4 з яких не з'єднані з вершиною (1, 1). Є 2 вершини на відстані 1 від вершини (1, 1) і 1 вершина на відстані 2. Тому відповідь 2 * 1 + 1 * 2 = 4.

Приклад 2. G містить 4 * 6 * 7 = 168 вершин, кожна з яких з'єднана з вершиною (1, 1, 1). Кількість вершин на відстані i від вершини (1, 1, 1) для кожного i ∈ [1, 7] задано i-им елементом наступного масиву: [4, 23, 28, 36, 40, 24, 12].