BOJ 17526 Star Trek
BOJ 17526 Star Trek
문제 내용
수직선 위에 개의 점이 있습니다 (). 각각의 이웃한 점들 사이의 거리 개가 주어집니다. (거리 의 범위: )
1번 점에서 번 점으로 이동하려고 하는데, 각 점에서 출발하는 교통 수단을 이용할 수 있습니다. 각 교통수단은 아무 때나 출발할 수 있지만, 각각 준비 시간과 이동 속도가 다릅니다. 이동 속도는 “거리 1을 이동하는 데 걸리는 시간"으로 주어집니다. 어떤 점에서 교통 수단을 갈아타는 데에는 주어진 준비 시간 이외의 추가 시간은 들지 않습니다. (준비 시간 의 범위: , 속도 값 의 범위: )
이때 1번 점에서 번 점으로 이동하는 데 걸리는 최소 시간을 구하세요.
문제 풀이
스포일러
먼저 DP를 생각해 보면, 번째 점에 도달하는 최소 시간은 해당 좌표에서 여러 직선의 값 중 최솟값이고, 번째 점에서 출발하는 직선이 추가되는 형식이 됩니다.
이때 추가되는 기울기가 단조적이지 않으므로, 단순 monotone stack은 쓰기 어렵고, Li-Chao tree를 써서 풀 수 있습니다.
그 외에 직선 루트 개 단위로 convex hull을 재구성하는 풀이, DP를 뒤에서부터 잘 정리하여 monotone stack을 사용 가능한 꼴로 정리하는 풀이 등이 있다고 합니다.
Last updated on