만드는 중입니다

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

택시 여행

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

요약
가중치가 있는 트리에서 도시 0번으로부터 각 도시까지의 최소 택시 요금을 구합니다. 도시마다 기본 요금 A와 km당 요금 B가 다르며, 택시를 갈아탈 때마다 기본 요금을 다시 냅니다.
난이도

보통10점 중 7점

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

문제

IOI 나라는 NN개의 도시와 도시들을 잇는 N−1N - 1개의 양방향 도로로 이루어져 있으며, 임의의 서로 다른 두 도시를 도로만 사용하여 오갈 수 있다. 즉, IOI 나라의 도로망은 트리 구조를 이룬다.

도시에는 각각 00 이상 N−1N - 1 이하의 서로 다른 번호가 붙어 있으며, 00번 도시가 IOI 나라의 수도이다. 모든 0≤i≤N−20 \le i \le N - 2에 대해 ii번 도로는 U[i]U[i]번 도시와 V[i]V[i]번 도시를 잇고, 길이는 W[i]W[i] km이다.

IOI 나라에서는 도시마다 택시 운임이 다르다. 모든 0≤i≤N−10 \le i \le N - 1에 대해 ii번 도시에서 출발하는 택시는 기본 요금 A[i]A[i]원과 거리당 요금 B[i]B[i]원을 가진다. ii번 도시에서 택시를 타고 dd km를 이동하면 A[i]+d×B[i]A[i] + d \times B[i]원을 내야 한다.

서현이는 현재 수도인 0번 도시에 살고 있다. 서현이는 다른 도시들로 택시를 타고 여행을 떠나려고 한다. 서현이가 어떤 도시에 도착하면, 타고 있던 택시를 계속 타거나 그 도시에서 출발하는 택시로 갈아탈 수 있다. 택시를 갈아타면 기본 요금을 내야 하며, 거리당 요금도 바뀔 수 있다. 0번 도시에서 출발하여 다른 모든 도시로 가는 데 필요한 최소 비용을 각각 구하여라.

제한

  • 2≤N≤100 0002 \le N \le 100\,000
  • 모든 ii에 대해 0≤A[i]≤10120 \le A[i] \le 10^{12} (0≤i≤N−10 \le i \le N - 1)
  • 모든 ii에 대해 0≤B[i]≤1 000 0000 \le B[i] \le 1\,000\,000 (0≤i≤N−10 \le i \le N - 1)
  • 모든 ii에 대해 0≤U[i],V[i]≤N−10 \le U[i], V[i] \le N - 1; U[i]≠V[i]U[i] \ne V[i] (0≤i≤N−20 \le i \le N - 2)
  • 모든 ii에 대해 1≤W[i]≤1 000 0001 \le W[i] \le 1\,000\,000 (0≤i≤N−20 \le i \le N - 2)

예제1

  1. 예제 1

    입력
    2
    0 0
    0 0
    0 1 1
    
    예상 출력
    0