만드는 중입니다

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

나무 위 망대

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

요약
트리에서 선택한 모든 꼭짓점이 다른 선택 꼭짓점과 인접하도록 K개의 꼭짓점을 고르는 경우의 수를 1000000007로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

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

문제

망대는 나무에 매달아 놓은 높은 나무 발판이다. 사냥꾼은 망대에 올라가 사냥감을 살피거나 사냥한다.

이 지방 사냥꾼들은 망대 NN개를 좁고 곧은 길로 이어 놓았다. 숲을 덜 훼손하려고, 어느 두 망대 사이든 오갈 수 있게 하는 최소 개수의 길만 냈다. 두 망대는 길로 직접 이어져 있을 때만 서로 보인다.

사냥꾼 KK명으로 이루어진 무리는 날마다 서로 다른 망대 조합에 올라가 야생 동물을 관찰한다. 조건은 다음과 같다.

  • 안전 규정에 따라, 사람이 올라간 망대는 사람이 올라간 다른 망대에서 반드시 보여야 한다. 사고가 나면 옆 망대의 사냥꾼이 도우러 갈 수 있어야 하기 때문이다.
  • 망대 하나에 올라가는 사냥꾼은 많아야 한 명이다.
  • 누가 어느 망대에 있는지는 상관없다. 어느 망대가 쓰였는지만 구분한다.
  • 무리의 인원수는 바뀌지 않는다.

이 무리가 가능한 망대 조합을 모두 시험해 보려면 며칠이 걸리는지 구하여라.

입력

입력은 여러 개의 테스트 케이스로 이루어지며, 입력의 끝까지 이어진다.

각 테스트 케이스의 첫 줄에 정수 NN과 KK가 공백으로 구분되어 주어진다 (2≤K≤N≤2002 \le K \le N \le 200). NN은 망대의 개수, KK는 무리의 인원수이다. 망대에는 11번부터 NN번까지 번호가 붙어 있다.

이어지는 N−1N-1개의 줄에 길이 한 개씩 주어진다. 각 줄에는 그 길이 잇는 두 망대의 번호가 공백으로 구분되어 주어진다. 한 줄 안의 두 번호 순서와 길이 주어지는 순서는 정해져 있지 않다.

출력

각 테스트 케이스마다 무리가 망대에서 보내게 되는 날수를 한 줄에 하나씩 출력한다. 답은 10000000071000000007로 나눈 나머지로 출력한다.

예제2

  1. 예제 1

    입력
    4 3
    1 2
    1 4
    1 3
    5 4
    1 2
    2 3
    3 4
    4 5
    
    예상 출력
    3
    3
    
  2. 예제 2

    입력
    2 2
    1 2
    
    예상 출력
    1