만드는 중입니다

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

반사복제된 트리

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

요약
N개의 노드로 된 트리를 K번 반사 복사한 뒤, 모든 노드 쌍 사이 거리의 합을 10^9+7로 나눈 나머지를 구합니다.
난이도

어려움10점 중 8점

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

문제

어떤 트리 TT의 "반사복제" 행위를 다음과 같이 정의한다.

  • TT의 각 리프 노드 LL에 대하여, 트리 TT를 통째로 복제한 뒤 복제본에서 LL에 해당하는 노드를 원래 트리의 LL과 겹친다. 복제본은 원래 트리와 같은 위상을 가진다.

이 그림은 주어진 트리(화살표 왼쪽)를 반사복제해서 만든 새로운 트리(화살표 오른쪽)이다. 굵은 원은 기존의 트리이고, 얇은 원은 각 리프 노드별로 복제된 트리이다. 새로 생성된 노드는 기존 노드와 구분하기 위해 번호에 쌍따옴표를 붙였다.

NN개의 노드를 가진 트리가 주어진다. 이 트리를 KK번 반사복제했을 때, 모든 노드 쌍 사이의 거리를 109+710^{9} + 7로 나눈 나머지를 구하시오. dist(v1,v2)dist(v_1, v_2)는 두 노드 v1v_1, v2v_2를 잇는 경로 위의 간선 개수이고, VV는 전체 노드의 집합이다. 구할 값은 다음과 같다.

12∑v1∈V∑v2∈Vdist(v1,v2)\frac{1}{2} \sum_{v_1 \in V} \sum_{v_2 \in V} dist(v_1, v_2)

입력

첫 번째 줄에 트리의 노드 개수 NN과 반사복제 횟수 KK가 공백으로 구분되어 주어진다. (2≤N≤100,0002 \leq N \leq 100,000, 1≤K≤100,0001 \leq K \leq 100,000)

두 번째 줄부터 N−1N-1개의 줄에 걸쳐 두 정수 u1u_1, u2u_2가 공백으로 구분되어 주어진다. 이는 트리의 u1u_1번 노드와 u2u_2번 노드가 간선으로 연결되어 있다는 뜻이다. (1≤u1<u2≤N1 \leq u_1 < u_2 \leq N) 입력으로 주어지는 간선은 항상 트리를 이룬다.

출력

정답을 109+710^{9} + 7로 나눈 나머지를 출력한다.

힌트

첫 번째 입력으로 주어진 트리를 1번 반사복제한 트리는 다음 그림과 같다.

두 번째 입력으로 주어진 트리(본문에 있는 트리)를 2번 반사복제한 트리는 다음 그림과 같다.

예제2

  1. 예제 1

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

    입력
    5 2
    1 3
    2 3
    3 4
    4 5
    
    예상 출력
    89064