8102: Sum of Distances

内存限制:128 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:2 通过:1

题目描述

Bessie has a collection of connected, undirected graphs G1,G2,…,GK (2≤K≤5⋅104). For each 1≤i≤KGi has exactly Ni (Ni≥2) vertices labeled 1…Ni1…Ni and MiMi (Mi≥Ni−1) edges. Each Gi may contain self-loops, but not multiple edges between the same pair of vertices.

Now Elsie creates a new undirected graph GG with N1⋅N2⋯NKvertices, each labeled by a K-tuple (j1,j2,…,jK) where 1≤ji≤Ni. In G, two vertices (j1,j2,…,jK)and (k1,k2,…,kK) are connected by an edge if for all 1≤i≤K, ji and ki are connected by an edge in Gi.

Define the distance between two vertices in G that lie in the same connected component to be the minimum number of edges along a path from one vertex to the other. Compute the sum of the distances between vertex (1,1,…,1)and every vertex in the same component as it in G, modulo 109+7.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains K, the number of graphs. Each graph description starts with Ni and Mi on a single line, followed by Mi edges.
Consecutive graphs are separated by newlines for readability. It is guaranteed that ∑Ni≤105 and ∑Mi≤2⋅105.

OUTPUT FORMAT (print output to the terminal / stdout):

The sum of the distances between vertex (1,1,…,1) and every vertex that is reachable from it, modulo 109+7.

SAMPLE INPUT:

2

2 1
1 2

4 4
1 2
2 3
3 4
4 1

SAMPLE OUTPUT:

4

G contains 2⋅4=8 vertices, 44 of which are not connected to vertex (1,1). There are 2 vertices that are distance 1 away from (1,1)and 1 that is distance 2 away. So the answer is 2⋅1+1⋅2=4

SAMPLE INPUT:

3

4 4
1 2
2 3
3 1
3 4

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

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

SAMPLE OUTPUT:

706

G contains 4⋅6⋅7=1684⋅6⋅7=168 vertices, all of which are connected to vertex (1,1,1). The number of vertices that are distance i away from (1,1,1) for each i∈[1,7] is given by the i-th element of the following array: [4,23,28,36,40,24,12].

输入样例 复制

3

4 4
1 2
2 3
3 1
3 4

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

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

输出样例 复制

706