아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

운명

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

요약
트리의 간선마다 0 또는 1을 붙이는 방법 중, Q의 모든 조상-자손 쌍 경로에 값이 1인 간선이 하나 이상 있는 경우의 수를 998244353으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
트리, 동적 계획법, DFS
정답자
아직 제출이 없습니다

문제

트리 T=(V,E)T = (V,E)와 정점 쌍의 집합 Q⊂V×VQ \subset V \times V가 주어진다. 여기서 VV는 정점의 집합, EE는 간선의 집합이다. 모든 (u,v)∈Q(u,v) \in Q에 대해 u≠vu \ne v이고, uu는 트리 TT에서 vv의 조상이다. 모든 (u,v)∈Q(u,v) \in Q에 대해 uu에서 vv까지의 경로 위에 f(e)=1f(e) = 1인 간선 ee가 존재하도록 하는 함수 f:E→{0,1}f: E \to \{0, 1\}의 개수를 구하라. 답은 998 244 353998\,244\,353으로 나눈 나머지로 출력한다.

입력

첫째 줄에 트리 TT의 정점 개수 nn이 주어진다. 정점은 1번부터 nn번까지 번호가 매겨져 있고, 루트는 1번 정점이다. 다음 n−1n-1개의 줄에는 공백으로 구분된 두 정수 xix_i, yiy_i가 주어지며, 이는 정점 xix_i와 yiy_i를 잇는 간선이 있다는 뜻이다. 간선에는 방향이 없다. 다음 줄에는 QQ의 크기 mm이 주어진다. 다음 mm개의 줄에는 공백으로 구분된 두 정수 uiu_i, viv_i가 주어지며, 이는 (ui,vi)∈Q(u_i,v_i) \in Q라는 뜻이다. 같은 쌍이 여러 번 나올 수 있다.

출력

조건을 만족하는 함수 ff의 개수를 나타내는 정수 하나를 출력한다.

제한

n≤5×105n \le 5 \times 10^5, m≤5×105m \le 5 \times 10^5. 입력은 트리를 이룬다. 모든 1≤i≤m1 \le i \le m에 대해 uiu_i는 viv_i의 조상이다.

예제2

  1. 예제 1

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

    입력
    15
    2 1
    3 1
    4 3
    5 2
    6 3
    7 6
    8 4
    9 5
    10 7
    11 5
    12 10
    13 3
    14 9
    15 8
    6
    3 12
    5 11
    2 5
    3 13
    8 15
    1 13
    
    예상 출력
    960