만드는 중입니다

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

타임 트래블

면접 대비

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

요약
도시 n개와 연도별 트리 k개가 주어질 때, 모든 트리에서 s에서 f로 가는 경로에 놓인 도시의 수를 순서쌍 (s, f)마다 구합니다.
난이도

보통10점 중 5점

유형
트리, 비트 연산, BFS
정답자
아직 제출이 없습니다

문제

타임머신이 발명된 미래에는 역사를 배우기가 더 쉬워졌다. 이제는 해당 연도로 가서 사건을 직접 눈으로 볼 수 있다. 교수는 이 장치를 이용해 대전환 시기의 베를란드 도로망을 연구한다.

대전환은 연속된 kk년 동안 진행되었다. 이 기간 동안 베를란드의 도로망은 계속 바뀌었다. 나라에는 11부터 nn까지 번호가 매겨진 nn개의 도시가 있다. 매년 이 도시들은 양방향 도로 n−1n-1개로 연결되어 있으며, 어떤 두 도시 사이에도 경로는 하나뿐이다.

교수는 매일 두 도시 ss와 ff를 고른 뒤, 대전환의 각 연도를 차례로 거친다. 각 연도마다 ss에서 ff까지 이동하며, 경로에 있는 모든 도로를 지나간다. 이때 ss와 ff도 방문한 도시에 포함된다. 그다음 kk번의 이동에서 모두 방문한 도시의 수를 기록한다.

안타깝게도 교수는 모든 도시 쌍을 조사한 뒤 기록을 모두 잃어버렸다. 남은 것은 대전환 kk년 각각의 베를란드 도로망 지도뿐이다.

교수가 가능한 모든 도시 쌍 ss, ff에 대해 적었던 수를 복원하도록 도와라.

입력

첫 줄에 베를란드의 도시 수 nn과 대전환의 연도 수 kk가 주어진다(1≤n,k≤5001 \leq n, k \leq 500).

이어서 각 연도의 도로망을 설명하는 kk개의 입력이 주어진다. 각 설명은 n−1n-1줄로 이루어지며, 각 줄에는 도로로 연결된 두 도시 aa와 bb가 주어진다(1≤a,b≤n1 \leq a, b \leq n, a≠ba \neq b). 각 연도에서 모든 도시 쌍 사이에 경로가 하나뿐이라고 보장된다.

출력

nn줄에 걸쳐 각 줄마다 정수 nn개를 출력한다. ii번째 줄의 jj번째 수는 s=is=i, f=jf=j일 때 교수가 기록한 수이다.

힌트

첫 번째 예제 테스트에서 베를란드에는 도시가 44개 있다. 교수가 조사한 연도는 22년이다. 첫 해의 도로망 지도는 왼쪽에, 둘째 해의 지도는 오른쪽에 있다.

s=1s = 1, f=2f = 2인 쌍을 보자. 첫 해의 이동에서 교수는 도시 11, 22, 33, 44를 방문한다. 둘째 해의 이동에서는 도시 11, 22, 44를 방문한다. 모든 이동에서 방문한 도시는 11, 22, 44이므로 이 쌍에는 33을 기록한다.

s=3s = 3, f=1f = 1인 쌍을 보자. 첫 해의 이동은 도시 11, 33을 지난다. 둘째 해의 이동은 도시 11, 33, 44를 지난다. 모든 이동에서 방문한 도시는 11과 33이므로 이 쌍에는 22를 기록한다.

예제2

  1. 예제 1

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

    입력
    3 3
    1 2
    2 3
    2 3
    3 1
    3 1
    1 2
    
    예상 출력
    1 2 2
    2 1 2
    2 2 1