만드는 중입니다

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

삼각 캑터스 경로

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

요약
모든 사이클의 길이가 3 이하인 캑터스 그래프에서 두 정점 s, f를 잇는 길이 k인 단순 경로의 수를 998244353으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

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

문제

간선이 많아야 하나의 단순 사이클에 속하는 단순 연결 무방향 그래프가 주어진다. 이를 캑터스라고 한다. 이 캑터스는 삼각 캑터스이며, 임의의 단순 사이클의 길이는 33 이하이다.

각 질의에서는 두 정점 ss, ff와 정수 kk가 주어진다. 정점 ss에서 ff까지 길이가 정확히 kk인 단순 경로의 개수를 구하라. 답은 998 244 353998\,244\,353으로 나눈 나머지로 구한다.

경로가 단순하다는 것은 경로 위의 모든 정점이 서로 다르다는 뜻이다. 경로의 길이는 경로에 포함된 간선의 수와 같다.

입력

첫 줄에 정점 수와 간선 수 nn, mm (2≤n≤2⋅1052 \leq n \leq 2 \cdot 10^5, n−1≤m≤3(n−1)2n - 1 \leq m \leq \frac{3(n-1)}{2})이 주어진다.

다음 mm개 줄에는 각각 무방향 간선 (u,v)(u, v)를 나타내는 두 정수 uu, vv (1≤u,v≤n1 \leq u, v \leq n, u≠vu \neq v)가 주어진다. 모든 간선은 서로 다르다. 주어지는 그래프는 연결된 삼각 캑터스임이 보장된다.

다음 줄에는 질의의 개수 qq (1≤q≤2⋅1051 \leq q \leq 2 \cdot 10^5)가 주어진다.

다음 qq개 줄에는 각각 질의를 나타내는 세 정수 ss, ff, kk (1≤s,f≤n1 \leq s, f \leq n, 0≤k<n0 \leq k < n)가 주어진다.

출력

qq개의 정수를 출력한다. 각 정수는 해당 질의의 답이다.

예제1

  1. 예제 1

    입력
    8 10
    1 2
    2 3
    3 1
    3 4
    4 5
    5 6
    6 4
    4 7
    7 8
    8 4
    6
    1 1 0
    1 1 1
    1 4 3
    6 2 4
    5 7 4
    3 4 2
    
    예상 출력
    1
    0
    1
    2
    1
    0