만드는 중입니다

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

두 개의 트리를 이용하는 놀이

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

요약
두 트리에서 특수 노드를 하나씩 포함하는 경로 수를 세고, 두 트리 사이에 간선을 하나 이었을 때 각 (i, j) 쌍의 경로 수에 (i+j)를 곱해 모두 더한 값을 구합니다.
난이도

어려움10점 중 8점

유형
트리, DFS, 분할 정복
정답자
아직 제출이 없습니다

문제

Albert는 두 개의 트리를 이용한 놀이를 하고 있습니다. 첫 번째 트리 TAT_A는 NAN_A개의 노드를 가지며, 노드는 a1,a2,…,aNAa_1, a_2, \dots, a_{N_A}로 나타냅니다. 이 중 SAS_A에 속한 노드를 "특별한" 노드로 봅니다. 두 번째 트리 TBT_B는 NBN_B개의 노드를 가지며, 노드는 b1,b2,…,bNBb_1, b_2, \dots, b_{N_B}로 나타냅니다. 이 중 SBS_B에 속한 노드가 특별한 노드입니다.

아래 그림은 두 트리가 각각 3개의 노드를 가진 예(NA=NB=3N_A = N_B = 3)입니다. SAS_A에는 3개, SBS_B에는 1개의 노드가 있습니다. 특별한 노드는 그림에서 이중선으로 표시되어 있습니다.

각 트리에서 노드를 하나씩 골라 간선으로 연결하면 두 트리를 하나로 합칠 수 있습니다. 간선 e=(ai,bj)e = (a_i, b_j)를 TA∪TBT_A \cup T_B에 추가한 트리를 Ui,jU_{i,j}라고 합니다. Ui,jU_{i,j}의 "완벽도" S(i,j)S(i, j)는 Ui,jU_{i,j}에 있는 모든 단순 경로 중 SAS_A에 속한 노드를 정확히 하나, SBS_B에 속한 노드를 정확히 하나 포함하는 경로의 개수로 정합니다. 이런 경로를 "완벽한 경로"라고 합니다.

예에서 S(1,1)=1S(1, 1) = 1, S(1,2)=3S(1, 2) = 3, S(1,3)=1S(1, 3) = 1입니다. U1,1U_{1,1}의 완벽한 경로는 a1−b1−b3−b2a_1 - b_1 - b_3 - b_2 하나뿐입니다. U1,2U_{1,2}의 완벽한 경로는 a1−b2a_1 - b_2, a1−b2−b3a_1 - b_2 - b_3, a1−b2−b3−b1a_1 - b_2 - b_3 - b_1의 3개입니다. U1,3U_{1,3}의 완벽한 경로는 a1−b3−b2a_1 - b_3 - b_2 하나뿐입니다.

같은 방법으로 S(2,1)=1S(2, 1) = 1, S(2,2)=3S(2, 2) = 3, S(2,3)=1S(2, 3) = 1, S(3,1)=1S(3, 1) = 1, S(3,2)=3S(3, 2) = 3, S(3,3)=1S(3, 3) = 1을 구할 수 있습니다.

한 쌍의 S(i,j)S(i, j)를 구하는 것은 쉬우므로, Albert는 다음 값을 구하려 합니다. V(TA,TB)=∑1≤i≤NA∑1≤j≤NBS(i,j)⋅(i+j)V(T_A, T_B) = \sum_{1 \le i \le N_A} \sum_{1 \le j \le N_B} S(i, j) \cdot (i + j). 위 예에서 이 값은 60입니다.

두 트리가 주어졌을 때 V(TA,TB)V(T_A, T_B)를 구하세요.

입력

첫 줄에 테스트 케이스의 수 CC가 주어집니다.

각 테스트 케이스의 첫 줄에는 NAN_A와 MA=∣SA∣M_A = |S_A|가 공백으로 구분되어 주어집니다. 둘째 줄에는 SAS_A에 속한 노드의 번호 MAM_A개가 공백으로 구분되어 주어집니다. 다음 NA−1N_A - 1줄에는 TAT_A의 간선이 한 줄에 하나씩, 정수 두 개로 주어집니다.

이어서 두 번째 트리를 나타내는 NBN_B와 MB=∣SB∣M_B = |S_B|가 공백으로 구분되어 주어집니다. 다음 줄에는 SBS_B에 속한 노드의 번호 MBM_B개가 주어집니다. 마지막으로 TBT_B의 간선을 나타내는 NB−1N_B - 1줄이 주어집니다.

출력

각 테스트 케이스마다 V(TA,TB)V(T_A, T_B)를 109+710^9 + 7로 나눈 나머지를 한 줄에 출력합니다.

제한

  • 1≤C≤101 \le C \le 10
  • 2≤NA,NB≤65,0002 \le N_A, N_B \le 65,000
  • 1≤MA≤NA1 \le M_A \le N_A
  • 1≤MB≤NB1 \le M_B \le N_B
  • 입력으로 주어지는 SAS_A에 중복된 원소는 없습니다.
  • 입력으로 주어지는 SBS_B에 중복된 원소는 없습니다.
  • 두 트리 TAT_A, TBT_B는 올바른 트리입니다.

예제1

  1. 예제 1

    입력
    5
    2 2
    1 2
    1 2
    2 2
    1 2
    2 1
    3 3
    1 2 3
    1 2
    2 3
    3 1
    2
    1 3
    2 3
    3 3
    1 2 3
    1 2
    2 3
    3 3
    1 2 3
    1 3
    2 3
    5 3
    1 3 5
    2 1
    1 4
    1 5
    3 2
    6 3
    2 3 5
    3 1
    2 1
    2 4
    3 5
    3 6
    8 4
    1 3 5 7
    2 1
    1 3
    1 4
    1 5
    1 6
    1 7
    1 8
    4 2
    2 3
    1 2
    4 1
    3 4
    
    예상 출력
    12
    60
    36
    904
    1600