QOJ.ac

QOJ

시간 제한: 2 s 메모리 제한: 256 MB 총점: 100

#21274. 근처 소

통계

Farmer John은 소들이 가까운 들판 사이로 자주 이동함을 알아챘다. 각 들판의 원래 소와 근처에서 방문하는 소 모두에게 충분한 풀을 심고 싶다.

들판은 $N$개 ($1 \le N \le 100{,}000$)이며 일부를 양방향 길, 총 $N-1$개가 잇는다. 어느 $i$, $j$ 사이도 경로가 유일하다. 들판 $i$에는 소 $C(i)$마리가 있지만 최대 $K$개 길 ($1 \le K \le 20$)을 건너 다른 곳으로 갈 수 있다.

들판 $i$에 올 수 있는 최대 $M(i)$마리, 즉 최대 $K$개 길을 건너 도달 가능한 모든 소를 먹이고 싶다. 구조와 각 $C(i)$로 모든 $M(i)$를 구하라.

입력

  • 줄 $1$: 공백으로 구분한 정수 $N$, $K$.

  • 줄 $2\ldots N$: 공백으로 구분한 정수 $i$, $j$ ($1 \le i,j \le N$)로 직접 연결을 나타낸다.

  • 줄 $N+1\ldots2N$: 줄 $N+i$에 정수 $C(i)$ ($0 \le C(i) \le 1000$).

출력

  • 줄 $1\ldots N$: 줄 $i$에 $M(i)$.

예제

입력 1

6 2
5 1
3 6
2 4
2 1
3 2
1
2
3
4
5
6

출력 1

15
21
16
10
8
11

참고

들판은 $6$개, 길은 $(5,1)$, $(3,6)$, $(2,4)$, $(2,1)$, $(3,2)$다. 들판 $i$에는 $C(i)=i$마리가 있다.

들판 $1$은 길 $2$개 이내에 $M(1)=15$마리가 있다. 나머지도 같다.

문제 출제: Neal Wu와 Eric Price, 2011

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.