만드는 중입니다

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

간단한 트리 분해 문제

면접 대비

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

요약
트리의 간선을 일부 제거했을 때 모든 연결 요소의 정점 수가 A 또는 B가 되는 간선 집합의 개수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 6점

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

문제

BOOM! 도훈이의 머리가 폭발했다. KAIST 조합론 및 알고리즘 여름 학교에서 받은 트리 분해 연습 문제를 풀던 중이었다. 문제에 집중할 수 없게 된 도훈이의 뇌는 일반 그래프에 대한 트리 분해 대신, 트리를 분해하는 일로 시간을 보내고 있다.

도훈이에게 정점이 NN개인 트리가 주어진다. 도훈이는 다음 절차로 트리를 연결 요소들의 모음으로 나눈다.

  1. 트리에서 간선을 0개 이상 골라 제거한다. 제거한 간선의 집합을 SS라 한다.
  2. SS의 간선을 제거한 뒤, 각 연결 요소의 정점 수는 AA 또는 BB여야 한다.

이 조건을 만족하는 간선 집합 SS의 개수를 구하라.

입력

첫째 줄에 정수 NN, AA, BB가 공백으로 구분되어 주어진다. 이어지는 N−1N-1개의 줄에는 정수 xix_i와 yiy_i가 공백으로 구분되어 주어지며, 이는 ii번째 간선이 정점 xix_i와 yiy_i를 잇는다는 뜻이다.

출력

가능한 간선 집합 SS의 개수를 109+710^9+7로 나눈 나머지를 출력한다.

제한

1≤N≤100 0001 \le N \le 100\,000

1≤A<B≤5001 \le A < B \le 500

1≤xi<yi≤N1 \le x_i < y_i \le N (1≤i≤N−11 \le i \le N-1)

주어지는 간선들은 트리를 이룬다.

예제1

  1. 예제 1

    입력
    6 1 2
    1 2
    2 3
    2 4
    4 5
    4 6
    
    예상 출력
    10