만드는 중입니다

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

방역

시간 제한2초메모리 제한256 MB

요약
트리에서 봉쇄할 도시 집합을 세어, 봉쇄되지 않은 도시끼리 K개 이상의 도로로 이어지는 단순 경로가 없도록 합니다. 답은 10^9+7로 나눈 나머지입니다.
난이도

어려움10점 중 8점

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

문제

설곽국은 1부터 NN까지 번호가 매겨진 NN개의 도시로 이루어진 나라이다. 도시 사이에는 두 도시를 잇는 도로가 N−1N-1개 있으며, 모든 도시는 서로 연결되어 있다. 모든 도로의 길이는 11이다.

최근 설곽국에서는 옆나라 경곽국에서 들어온 신종 바이러스가 유행하고 있다. 설곽국의 보건복지부 장관 근영이는 바이러스를 확산시키는 가장 큰 요인이 장거리 여행이라고 보고, 몇몇 도시를 봉쇄하고 봉쇄된 도시와 연결된 도로를 폐쇄하려고 한다.

근영이가 생각하는 장거리 여행은 이동 거리가 KK 이상이고, 같은 도시를 두 번 이상 지나지 않는 여행이다.

예를 들어 K=3K = 3이고 도시와 도로의 모양이 아래 그림과 같다고 하자.

이때 장거리 여행으로 가능한 경로는 1, 2, 3, 6번 도시를 순서대로 지나는 경로나 5, 3, 6, 7번 도시를 순서대로 지나는 경로 등이 있다. 이 밖에도 여러 장거리 여행 방법이 있다.

만약 3번 도시를 봉쇄한다면, 같은 도시를 두 번 이상 지나지 않는 어떤 경로도 길이가 2를 넘지 않으므로 장거리 여행은 불가능해진다. 또한 모든 도시를 봉쇄하면 장거리 여행은 불가능해진다.

근영이는 적절한 도시들을 봉쇄해서 장거리 여행이 불가능하게 만들고 싶다. 장거리 여행이 불가능하도록 도시를 봉쇄하는 방법의 수를 구하여라.

입력

첫째 줄에 도시의 개수 NN과 근영이가 생각하는 양의 정수 KK가 주어진다. (1≤K≤N≤3000001 \le K \le N \le 300000)

둘째 줄부터 NN번째 줄까지 도로의 정보를 나타내는 두 자연수 xx, yy (1≤x,y≤N1 \le x, y \le N)가 주어진다. 이는 xx번 도시와 yy번 도시를 잇는 도로가 있다는 뜻이다.

출력

첫째 줄에 장거리 여행이 불가능하도록 도시를 봉쇄하는 방법의 수를 109+710^9+7로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

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

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

    입력
    7 3
    1 2
    2 3
    2 4
    3 6
    3 5
    6 7
    
    예상 출력
    104