트럭 운전사
시간 제한4.5초메모리 제한1024 MB
가중치가 있는 트리에서 도시별 배달 횟수가 Q번 바뀔 때마다 0번 도시에서 출발해 돌아오는 최대 배달 시간을 구합니다.
문제
헝가리는 0번부터 N-1번까지 번호가 붙은 개의 도시로 이루어진 나라다.
도시들은 0번부터 번까지 번호가 붙은 개의 양방향 도로로 연결되어 있다. 번 도로()는 도시 와 도시 를 잇고, 길이는 다. 즉, 이 도로를 지나는 데 의 시간이 걸린다. 각 도로는 서로 다른 두 도시를 잇고, 두 도시를 잇는 도로는 많아야 하나다.
서로 다른 두 도시 와 사이의 경로는 서로 다른 도시들의 수열 이다. 이때 , 이고, 각 ()에 대해 도시 와 을 잇는 도로가 있어야 한다. 임의의 두 도시 사이에는 경로가 있으며, 두 도시 사이의 경로는 하나뿐이다.
도시 와 의 거리를 로 쓰며, 다음과 같이 정의한다. 이면 이다. 그렇지 않으면 는 와 사이 경로에 있는 도로 길이의 합이다.
Karcsi는 트럭 운전사로, 여러 도시에서 배달을 완료해야 한다. 부터 까지의 각 에 대해, Karcsi는 도시 에서 번의 배달을 해야 한다. Karcsi는 도시 에서 출발하며, 배달은 어떤 순서로 해도 된다. 배달을 마치면 도시 으로 돌아온다. 배달 계획은 도시들의 수열 (비어 있을 수도 있음)이며, 각 ()에 대해 도시 가 정확히 번 나타나야 한다.
계획 의 배달 시간은 수열 에서 이웃한 도시 사이 거리의 합이다. 즉 이다.
Karcsi는 일 동안 일한다. 하루가 시작될 때마다 한 도시에서 필요한 배달 횟수가 바뀐다. 어떤 도시 와 음이 아닌 정수 에 대해 의 값이 가 된다. 이후 다시 바뀌기 전까지 의 값은 로 유지된다.
Karcsi는 시급으로 임금을 받기 때문에, 배달 시간이 가장 길어지는 계획을 고르고 싶어 한다. 각 날에 대해, 가능한 모든 계획 중 최대 배달 시간을 구하라.
제한
- (각 ()에 대해)
- (각 ()에 대해)
- 도로를 이용하면 임의의 도시에서 다른 임의의 도시로 이동할 수 있다.
- (각 ()에 대해)