만드는 중입니다

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

노드 지우기

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

요약
노드 n개와 간선 n개로 이루어진 연결 그래프에서 노드를 무작위 순서로 지울 때, 기대 갱신 횟수를 998244353으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
확률, 그래프, 트리, 분할 정복
정답자
아직 제출이 없습니다

문제

Bob의 일은 nn개의 노드와 nn개의 무방향 간선으로 이루어진 연결 그래프로 표현되는 네트워크를 관리하는 것이다. 이제 그는 네트워크 전체를 닫아야 한다.

처음에는 모든 노드가 활성 상태이다. 닫는 과정에서 그는 활성 노드를 하나씩 골라 비활성화하며, 활성 노드가 하나도 남지 않을 때까지 이를 반복한다. 각 활성 노드는 자신에서 다른 모든 활성 노드까지의 연결 정보를 저장한 표를 갖는다. 노드 uu가 비활성화되면, uu에 도달할 수 있었던 모든 활성 노드 vv(자기 자신 uu 포함)는 자신의 표를 갱신해야 한다. 비활성화 한 번으로 연결 요소가 여러 개의 작은 연결 요소로 나뉠 수 있으므로 한 번의 갱신에서 여러 기록이 바뀔 수 있다. 다만 갱신 한 번의 비용은 거의 같으며, vv에서 너비 우선 탐색을 한 번 수행하는 것이다.

나쁜 순서로 닫으면 갱신 횟수가 많아진다. Bob은 좋은 순서를 찾는 데 서툴러서, 매 단계마다 활성 노드 하나를 같은 확률로 무작위로 고른다. 갱신 횟수의 기댓값을 구하라.

정밀도 문제를 피하기 위해, 답이 기약분수 p/qp/q로 나타내어질 때 qr≡p(mod998244353)q r \equiv p \pmod{998244353}을 만족하는 가장 작은 음이 아닌 정수 rr을 출력하라. 예를 들어 6×166374072≡796 \times 166374072 \equiv 79, 3×332748131≡40(mod998244353)3 \times 332748131 \equiv 40 \pmod{998244353}이다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 정수 nn으로 시작한다. 이어지는 nn개의 줄에는 각각 두 정수 uu, vv가 주어지며, 이는 uu번 노드와 vv번 노드 사이의 간선을 나타낸다.

출력

각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄을 출력한다. 여기서 xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 그 테스트 케이스의 답이다.

제한

  • 1≤T≤1001 \le T \le 100
  • 3≤n≤1053 \le n \le 10^5
  • 1≤u<v≤n1 \le u < v \le n
  • 모든 테스트 케이스의 nn의 합은 5×1055 \times 10^5을 넘지 않는다.
  • 각 테스트 케이스의 간선은 서로 다르다. 즉, 다중 간선은 없다.

예제1

  1. 예제 1

    입력
    2
    5
    1 2
    1 3
    1 4
    2 4
    2 5
    5
    1 2
    1 3
    1 4
    1 5
    2 5
    
    예상 출력
    Case #1: 166374072
    Case #2: 332748131