만드는 중입니다

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

카투스 그래프의 행렬식

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

요약
연결된 캑터스 그래프가 주어질 때, 인접 행렬의 행렬식을 993244853으로 나눈 나머지를 구합니다.
난이도

어려움10점 중 8점

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

문제

카투스 그래프(Cactus graph)는 연결된 단순 무방향 그래프이며, 각 간선이 많아야 하나의 단순 사이클에 속하는 그래프이다.

NN개의 정점을 가진 그래프의 인접 행렬은 N×NN \times N 정수 행렬이다. 정점 ii와 jj 사이에 간선이 있으면 Ai,jA_{i,j}는 11, 없으면 00이다.

N×NN \times N 행렬의 행렬식은 다음과 같이 정의한다.

∑p∈P(N)(−1)inv(p)(∏i=1NAi,pi)\sum_{p \in P(N)}(-1)^{inv(p)}\left(\prod_{i=1}^{N}A_{i,p_i}\right)

여기서 P(N)P(N)은 크기 NN인 모든 순열의 집합이고, inv(p)inv(p)는 pi>pjp_i > p_j를 만족하는 1≤i<j≤N1 \le i < j \le N인 쌍의 개수이다.

993244853은 소수이며, 998244353=119×223+1998244353 = 119 \times 2^{23} + 1과 비슷한 모양이지만 실제로는 그 형태가 아니다.

주어진 카투스 그래프의 인접 행렬의 행렬식을 993244853으로 나눈 나머지를 구하라.

입력

첫 줄에 카투스 그래프의 정점 개수 NN과 간선 개수 MM이 주어진다. (1≤N≤500001 \le N \le 50000, 0≤M≤2500000 \le M \le 250000)

다음 MM개의 줄에는 간선의 양 끝점 ss, ee가 주어진다. (1≤s,e≤N1 \le s, e \le N, s≠es \neq e)

그래프는 연결되어 있고, 자기 루프와 중복 간선이 없으며, 각 간선은 많아야 하나의 단순 사이클에 속한다.

출력

주어진 카투스 그래프의 인접 행렬의 행렬식을 993244853으로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

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

    입력
    1 0
    
    예상 출력
    0
    
  3. 예제 3

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