Minimum Spanning Arborescence

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

요약
DAG의 M개 간선에 1부터 K까지의 가중치를 붙이는 모든 경우에 대해, 1번 정점을 루트로 하는 최소 신장 아보레센스의 가중치 합 기댓값을 998244353으로 나눈 나머지를 구한다.
난이도

어려움10점 중 9점

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

문제

rr을 루트로 하는 arborescence G=(V,E)G = (V, E)란 다음 조건을 만족하는 방향 그래프를 뜻한다.

  • 다른 모든 정점 vv에 대해, rr에서 vv로 가는 경로가 정확히 하나 존재한다.

DAG(Directed Acyclic Graph)란 사이클이 없는 유향 그래프를 뜻한다. DAG의 각 간선에 가중치가 부여되었을 때, DAG 위에서의 minimum spanning arborescence 란 다음과 같다.

  • DAG위에서의 11을 루트로 한 arborescence이다.
  • DAG 상의 모든 정점을 포함한다.
  • 사용된 간선들의 가중치 합이 최소이다. 그런 방법이 여럿 존재한다면 모두 minimum spanning arborescence이다.

정점 NN개, 유향 간선 MM개로 이루어진 DAG가 주어진다. MM개의 간선에 각각 11이상 KK이하의 가중치를 붙이는 KMK^M가지의 경우에 대해, minimum spanning arborescence를 구성하는 간선의 가중치 합의 기댓값을 998,244,353998\\,244\\,353으로 나눈 나머지를 구하여라. 중복 간선이 있을 수 있음에 유의하라.

입력

첫 줄에 세 정수 N,M,KN, M, K가 주어진다.

다음 MM개의 줄에 걸쳐 i+1i+1번째 줄에 간선을 뜻하는 두 정수 a_i,b_ia\_i, b\_i가 주어진다. 이는 a_ia\_i에서 b_ib\_i로 가는 유향 간선이 존재함을 뜻한다.

출력

기댓값을 998,244,353998\\,244\\,353으로 나눈 나머지를 출력한다.

즉, 기댓값이 서로소인 두 양의 정수 aa, bb에 대해 기약분수 ab\frac{a}{b}의 형태로 표현될 때, b⋅k≡a(mod998,244,353)b \cdot k \equiv a \pmod{998\\,244\\,353}을 만족하는 유일한 정수 kk (0≤k<998,244,3530 \le k < 998\\,244\\,353)를 출력한다.

제한

  • 1≤N,M,K≤1051 \leq N, M, K \leq 10^5
  • N−1≤MN-1 \leq M
  • 모든 1≤i≤N1 \le i \le N에 대하여 1≤a_i<b_i≤N 1 \leq a\_i < b\_i \leq N
  • 기존 DAG에서 1번 정점에서 다른 모든 정점에 도달할 수 있다.

예제5

  1. 예제 1

    입력
    10 15 3
    1 2
    1 3
    3 4
    4 5
    2 6
    2 7
    1 8
    1 9
    6 10
    4 9
    1 8
    8 9
    1 2
    8 10
    4 10
    
    예상 출력
    110916055
    
  2. 예제 2

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

    입력
    10 9 100
    1 2
    1 3
    3 4
    3 5
    5 6
    2 7
    2 8
    6 9
    7 10
    
    예상 출력
    499122631
    
  4. 예제 4

    입력
    11 10 2
    1 2
    1 3
    2 4
    4 5
    3 6
    1 7
    5 8
    8 9
    2 10
    3 11
    
    예상 출력
    15
    
  5. 예제 5

    입력
    5 7 2
    1 2
    2 3
    1 4
    1 5
    1 5
    2 4
    1 4
    
    예상 출력
    623902726