만드는 중입니다

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

숲 게임

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

요약
트리에서 노드를 무작위 순서로 하나씩 제거하며, 제거할 때마다 그 노드가 속한 컴포넌트 크기를 점수에 더합니다. 기대 점수에 N!을 곱한 값을 10^9+7로 나눈 나머지를 구합니다.
난이도

어려움10점 중 8점

유형
트리, 분할 정복, 조합론
정답자
아직 제출이 없습니다

문제

트리 하나로 이루어진 숲에서 노드를 제거하는 다음 지루한 게임을 생각해 보자. 처음에 숲에는 NN개의 노드로 이루어진 트리 하나만 있고, 초기 점수는 00이다. 게임은 다음과 같이 진행된다.

  1. 숲이 비어 있으면 게임이 끝난다. 그렇지 않으면 현재 숲의 노드 중 하나를 균등한 확률로 무작위로 고른다.
  2. 고른 노드가 속한 트리의 크기만큼 점수가 증가한다.
  3. 고른 노드와 이 노드에 연결된 모든 간선을 제거한다. 그 후 1번으로 돌아간다.

최종 점수의 기댓값에 N!N!을 곱한 값을 109+710^9+7로 나눈 나머지를 구하시오.

입력

첫째 줄에 초기 트리의 노드 개수 NN이 주어진다.

이후 N−1N-1개의 줄에 각각 정수 xx와 yy가 주어지며, 이는 xx번 노드와 yy번 노드가 간선으로 연결되어 있다는 뜻이다. 노드는 1번부터 NN번까지 번호가 매겨져 있다.

출력

최종 점수의 기댓값에 N!N!을 곱한 값을 109+710^9+7로 나눈 나머지를 한 줄에 출력한다.

제한

  • 1≤N≤1051 \le N \le 10^5
  • 1≤x,y≤N1 \le x, y \le N
  • 주어진 그래프는 트리이다.

예제2

  1. 예제 1

    입력
    2
    1 2
    
    예상 출력
    6
    
  2. 예제 2

    입력
    3
    1 2
    2 3
    
    예상 출력
    34