숲 게임
시간 제한4초메모리 제한512 MB
트리에서 노드를 무작위 순서로 하나씩 제거하며, 제거할 때마다 그 노드가 속한 컴포넌트 크기를 점수에 더합니다. 기대 점수에 N!을 곱한 값을 10^9+7로 나눈 나머지를 구합니다.
문제
트리 하나로 이루어진 숲에서 노드를 제거하는 다음 지루한 게임을 생각해 보자. 처음에 숲에는 개의 노드로 이루어진 트리 하나만 있고, 초기 점수는 이다. 게임은 다음과 같이 진행된다.
- 숲이 비어 있으면 게임이 끝난다. 그렇지 않으면 현재 숲의 노드 중 하나를 균등한 확률로 무작위로 고른다.
- 고른 노드가 속한 트리의 크기만큼 점수가 증가한다.
- 고른 노드와 이 노드에 연결된 모든 간선을 제거한다. 그 후 1번으로 돌아간다.
최종 점수의 기댓값에 을 곱한 값을 로 나눈 나머지를 구하시오.
입력
첫째 줄에 초기 트리의 노드 개수 이 주어진다.
이후 개의 줄에 각각 정수 와 가 주어지며, 이는 번 노드와 번 노드가 간선으로 연결되어 있다는 뜻이다. 노드는 1번부터 번까지 번호가 매겨져 있다.
출력
최종 점수의 기댓값에 을 곱한 값을 로 나눈 나머지를 한 줄에 출력한다.
제한
- 주어진 그래프는 트리이다.