7292 : 재귀 트리 합
•시간제한: 2.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
트리의 모든 노드의 가중치 합을 재귀적으로 계산하십시오.
각 노드의 가중치가 주어지며, 재귀적으로 서브트리를 탐색하여 합을 구합니다.
[제약 조건]
• 입력되는 모든 수는 정수입니다.
각 노드의 가중치가 주어지며, 재귀적으로 서브트리를 탐색하여 합을 구합니다.
[제약 조건]
• 입력되는 모든 수는 정수입니다.
입력 설명
첫째 줄에 트리 노드 수 $N$이 주어집니다. ($1 \le N \le 1{,}000$)
둘째 줄에 각 노드의 가중치 $N$개가 공백으로 주어집니다.
셋째 줄부터 트리 간선 정보가 주어집니다.
둘째 줄에 각 노드의 가중치 $N$개가 공백으로 주어집니다.
셋째 줄부터 트리 간선 정보가 주어집니다.
출력 설명
모든 노드의 가중치 합을 재귀적으로 계산한 값을 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
5
1 2 3 4 5
1 2
2 3
3 4
4 5
출력 예시
COPY
복사되었습니다!
복사되었습니다!
15
도움
루트에서 재귀적으로 모든 자식 노드를 방문하며 가중치를 누적합니다.
def tree_sum(node): return weight[node] + sum(tree_sum(c) for c in children[node])