만드는 중입니다

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

하나의 목표

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

요약
도시 n개로 이루어진 트리에서 친구 k명의 거리 합이 최소인 만남 도시를 모든 n^k 경우마다 구하고, 선택된 도시 번호의 합을 998244353으로 나눈 나머지로 출력합니다.
난이도

어려움10점 중 9점

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

문제

공화국 Never에는 nn개의 도시와 n−1n - 1개의 도로가 있다. 도시에는 1번부터 nn번까지 번호가 붙어 있다. 각 도로는 두 도시를 잇고 양방향으로 통행할 수 있다. 임의의 두 도시는 도로를 따라 서로 오갈 수 있다. 거리 d(u,v)d(u, v)는 도시 uu에서 도시 vv까지 이동하는 데 필요한 도로 수의 최솟값이다.

kk명의 친구가 만나려고 한다. ii번째 친구는 도시 aia_i에 산다. 친구들은 ∑i=1kd(v,ai)\sum_{i=1}^{k}{d(v, a_i)}가 최소가 되는 도시 vv를 고른다. 그런 도시가 여러 개면 번호가 가장 작은 도시를 고른다.

친구들이 어디에 사는지는 알 수 없다. 각 친구는 nn개의 도시 중 어디에든 살 수 있으므로 경우의 수는 모두 nkn^k가지이다. 이 nkn^k가지 경우에서 친구들이 고른 도시 번호를 모두 더한 값을 구하라. 답은 998244353으로 나눈 나머지로 출력한다.

입력

첫 줄에 두 정수 nn과 kk가 주어진다(2≤n,k≤300002 \le n, k \le 30000). 이어지는 n−1n - 1개의 줄에는 각각 두 정수 uiu_i와 viv_i가 주어지며, 이는 ii번째 도로가 잇는 두 도시의 번호이다(1≤ui,vi≤n1 \le u_i, v_i \le n, ui≠viu_i \ne v_i). 임의의 두 도시는 도로를 따라 서로 오갈 수 있다고 보장된다.

출력

nkn^k가지 경우 모두에서 고른 도시 번호의 합을 998244353으로 나눈 나머지를 출력한다.

힌트

첫 번째 예에서 도시는 3개, 친구는 2명이므로 경우의 수는 32=93^2 = 9가지이다. 이 중 3가지는 두 친구가 같은 도시에 살고, 그 도시를 고른다. 나머지 6가지는 두 친구가 서로 다른 도시에 살고, 도시 1을 고른다. 합은 (1+2+3)+6⋅1=12(1 + 2 + 3) + 6 \cdot 1 = 12이다.

예제2

  1. 예제 1

    입력
    3 2
    1 2
    1 3
    
    예상 출력
    12
    
  2. 예제 2

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