만드는 중입니다

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

트럭 운전사

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

요약
가중치가 있는 트리에서 도시별 배달 횟수가 Q번 바뀔 때마다 0번 도시에서 출발해 돌아오는 최대 배달 시간을 구합니다.
난이도

어려움10점 중 9점

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

문제

헝가리는 0번부터 N-1번까지 번호가 붙은 NN개의 도시로 이루어진 나라다.

도시들은 0번부터 N−2N - 2번까지 번호가 붙은 N−1N - 1개의 양방향 도로로 연결되어 있다. jj번 도로(0≤j≤N−20 \le j \le N - 2)는 도시 U[j]U[j]와 도시 V[j]V[j]를 잇고, 길이는 T[j]T[j]다. 즉, 이 도로를 지나는 데 T[j]T[j]의 시간이 걸린다. 각 도로는 서로 다른 두 도시를 잇고, 두 도시를 잇는 도로는 많아야 하나다.

서로 다른 두 도시 aa와 bb 사이의 경로는 서로 다른 도시들의 수열 p0,p1,…,plp_0, p_1, \dots, p_l이다. 이때 p0=ap_0 = a, pl=bp_l = b이고, 각 ii(0≤i<l0 \le i < l)에 대해 도시 pip_i와 pi+1p_{i+1}을 잇는 도로가 있어야 한다. 임의의 두 도시 사이에는 경로가 있으며, 두 도시 사이의 경로는 하나뿐이다.

도시 aa와 bb의 거리를 d(a,b)d(a, b)로 쓰며, 다음과 같이 정의한다. a=ba = b이면 d(a,b)=0d(a, b) = 0이다. 그렇지 않으면 d(a,b)d(a, b)는 aa와 bb 사이 경로에 있는 도로 길이의 합이다.

Karcsi는 트럭 운전사로, 여러 도시에서 배달을 완료해야 한다. 00부터 N−1N - 1까지의 각 ii에 대해, Karcsi는 도시 ii에서 W[i]W[i]번의 배달을 해야 한다. Karcsi는 도시 00에서 출발하며, 배달은 어떤 순서로 해도 된다. 배달을 마치면 도시 00으로 돌아온다. 배달 계획은 도시들의 수열 c1,c2,…,cmc_1, c_2, \dots, c_m(비어 있을 수도 있음)이며, 각 ii(0≤i<N0 \le i < N)에 대해 도시 ii가 정확히 W[i]W[i]번 나타나야 한다.

계획 c1,c2,…,cmc_1, c_2, \dots, c_m의 배달 시간은 수열 0,c1,c2,…,cm,00, c_1, c_2, \dots, c_m, 0에서 이웃한 도시 사이 거리의 합이다. 즉 d(0,c1)+d(c1,c2)+⋯+d(cm,0)d(0, c_1) + d(c_1, c_2) + \cdots + d(c_m, 0)이다.

Karcsi는 QQ일 동안 일한다. 하루가 시작될 때마다 한 도시에서 필요한 배달 횟수가 바뀐다. 어떤 도시 SS와 음이 아닌 정수 XX에 대해 W[S]W[S]의 값이 XX가 된다. 이후 다시 바뀌기 전까지 W[S]W[S]의 값은 XX로 유지된다.

Karcsi는 시급으로 임금을 받기 때문에, 배달 시간이 가장 길어지는 계획을 고르고 싶어 한다. 각 날에 대해, 가능한 모든 계획 중 최대 배달 시간을 구하라.

제한

  • 2≤N≤1000002 \le N \le 100000
  • 0≤U[j]<V[j]<N0 \le U[j] < V[j] < N (각 jj(0≤j≤N−20 \le j \le N - 2)에 대해)
  • 1≤T[j]≤1001 \le T[j] \le 100 (각 jj(0≤j≤N−20 \le j \le N - 2)에 대해)
  • 도로를 이용하면 임의의 도시에서 다른 임의의 도시로 이동할 수 있다.
  • 0≤W[i]≤1060 \le W[i] \le 10^6 (각 ii(0≤i<N0 \le i < N)에 대해)
  • 1≤Q≤3000001 \le Q \le 300000
  • 0≤S<N0 \le S < N
  • 0≤X≤1060 \le X \le 10^6

예제1

  1. 예제 1

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