걸어서 트리속으로

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

요약
트리의 정점을 한 번씩 나열할 때, 순환적으로 연속한 세 정점이 트리에서 같은 경로 위에 오지 않는 순열의 개수를 998244353으로 나눈 나머지로 구한다.
난이도

어려움10점 중 8점

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

문제

시사 교양 프로그램 '걸어서 트리속으로'의 PD인 종경이는 NN개의 나라를 한 번씩 촬영하려고 한다. 각 나라의 번호는 11번부터 NN번까지이다. 두 나라를 잇는 N−1N-1개의 양방향 직항 항공편이 있으며, 각 나라에서 모든 나라로 비행기를 통해 이동할 수 있다. 한 나라에서 다른 나라로 이동할 때는 비행기만 이용해야 하며, 비행기 탑승 횟수를 최소화하는 방법으로 이동해야 한다.

종경이는 촬영 순서를 잘 정하여 시청률을 높이고자 한다. 이를 위해 NN개 나라의 순서 A\[0]→A\[1]→⋯→A\[N−1]A\[0]\rightarrow A\[1]\rightarrow \cdots \rightarrow A\[N-1]는 다음 조건을 추가로 충족해야 한다.

  • 0≤i<N0 \le i < N인 모든 ii에 대해, dist(A\[i],A\[i+1])+dist(A\[i+1],A\[i+2])≠dist(A\[i],A\[i+2])\text{dist} (A\[i], A\[i+1]) + \text{dist} (A\[i+1], A\[i+2]) \neq \text{dist} (A\[i], A\[i+2]) (단, A\[N]=A\[0],A\[N+1]=A\[1]A\[N] = A\[0], A\[N+1] = A\[1])

단, dist(x,y)\text{dist} (x, y)는 xx번 나라에서 yy번 나라로 이동할 때, 비행기에 탑승하는 최소 횟수를 나타낸다.

바쁜 종경이를 대신하여, 나라들의 순서를 정하는 방법의 수를 998,244,353998\\,244\\,353으로 나눈 나머지를 구해주자.

입력

첫 줄에 나라의 개수 NN이 주어진다.

두 번째 줄부터 NN번째 줄까지 i+1i+1번째 줄에는 두 정수 x_ix\_i, y_iy\_i가 공백을 사이에 두고 주어진다. 이는 ii번째 항공편이 x_ix\_i번과 y_iy\_i번 나라를 연결하는 양방향 직항편이라는 것을 의미한다.

출력

첫 번째 줄에 구한 답을 출력한다.

제한

  • 3≤N≤3003\leq N\leq 300
  • 1≤x_i,y_i≤N1\leq x\_i, y\_i \leq N (1≤i<N1 \le i < N)
  • 각 나라에서 모든 나라로 비행기를 통해 이동할 수 있다.

예제1

  1. 예제 1

    입력
    4
    1 2
    2 3
    3 4
    
    예상 출력
    8