만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

거리의 합

시간 제한1초메모리 제한512 MB

요약
K개의 그래프가 주어졌을 때, 이들의 곱 그래프에서 (1,...,1)에서 같은 연결 요소에 있는 모든 정점까지의 최단 거리 합을 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
그래프, BFS, 수학, 정수론
정답자
아직 제출이 없습니다

문제

벳시는 연결되어 있고 방향이 없는 그래프 G1,G2,…,GKG_1,G_2,\ldots,G_K (2≤K≤5⋅1042\le K\le 5\cdot 10^4)를 가지고 있습니다. 각 1≤i≤K1\le i\le K에 대해 GiG_i는 정확히 NiN_i (Ni≥2N_i\ge 2)개의 정점을 가지며, 정점은 1…Ni1\ldots N_i로 번호가 매겨져 있습니다. 간선은 MiM_i (Mi≥Ni−1M_i\ge N_i-1)개입니다. 각 GiG_i에는 자기 루프가 있을 수 있지만, 같은 두 정점을 잇는 다중 간선은 없습니다.

엘시는 정점이 N1⋅N2⋯NKN_1\cdot N_2\cdots N_K개인 새로운 무방향 그래프 GG를 만듭니다. GG의 각 정점은 KK-튜플 (j1,j2,…,jK)(j_1,j_2,\ldots,j_K) (1≤ji≤Ni1\le j_i\le N_i)로 표시됩니다. GG에서 두 정점 (j1,j2,…,jK)(j_1,j_2,\ldots,j_K)와 (k1,k2,…,kK)(k_1,k_2,\ldots,k_K)는, 모든 1≤i≤K1\le i\le K에 대해 jij_i와 kik_i가 GiG_i에서 간선으로 연결되어 있으면 간선으로 연결됩니다.

같은 연결 요소에 속한 두 정점 사이의 거리는 한 정점에서 다른 정점까지 가는 경로의 간선 수의 최솟값입니다. (1,1,…,1)(1,1,\ldots,1) 정점과 같은 연결 요소에 속한 모든 정점 사이 거리의 합을 구합니다. 답은 109+710^9+7로 나눈 나머지로 출력합니다.

입력

첫 줄에 그래프의 개수 KK가 주어집니다.

각 그래프 설명은 한 줄에 NiN_i와 MiM_i가 주어지고, 이어서 MiM_i개의 간선이 주어집니다.

가독성을 위해 연속된 그래프 사이는 줄바꿈으로 구분됩니다. 모든 입력에서 ∑Ni≤105\sum N_i\le 10^5, ∑Mi≤2⋅105\sum M_i\le 2\cdot 10^5이 보장됩니다.

출력

정점 (1,1,…,1)(1,1,\ldots,1)에서 도달할 수 있는 모든 정점까지의 거리의 합을 109+710^9+7로 나눈 나머지로 출력합니다.

예제2

  1. 예제 1

    입력
    2
    
    2 1
    1 2
    
    4 4
    1 2
    2 3
    3 4
    4 1
    
    예상 출력
    4
    
  2. 예제 2

    입력
    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