나누어떨어지는 트리
시간 제한5초메모리 제한2048 MB
주어진 트리 T를 같은 트리 A의 복사본 k개와 새 간선 k-1개로 만들 수 있는 서로 다른 트리 A의 개수를 구합니다.
문제
무방향 트리 와 가 주어진다. 합 는 의 정점 하나와 의 정점 하나를 간선 하나로 이어서 얻을 수 있는 모든 무방향 트리의 집합이다.
마찬가지로 스칼라 와 트리 의 곱은 의 복사본 개를 새 간선 개로 이어 만든 트리들의 집합이다. 예를 들어 는 트리 만 담긴 집합이다. 는 와 같다. 는 의 복사본 3개를 간선 2개로 이어 하나의 트리로 만든 모든 트리를 담는다.
트리 가 트리 를 나눈다는 것은 가 에 포함되는 양의 정수 가 존재한다는 뜻이다. 자연수와 마찬가지로 모든 트리는 자기 자신과 정점 하나짜리 단위 트리로 나누어떨어진다.
두 트리는 한 트리의 정점 번호를 바꿔서 다른 트리를 얻을 수 없으면 서로 다른 트리로 본다. 트리 가 주어졌을 때, 를 나누는 서로 다른 트리의 개수를 구하시오.
입력
첫째 줄에 트리의 정점 개수 ()이 주어진다.
다음 개의 줄에는 트리의 간선 양 끝점 , ()가 한 줄에 하나씩 주어진다.
출력
를 나누는 서로 다른 트리의 개수를 정수 하나로 출력한다.