BOJ 17526 - Star Trek

image.png

CHT 연습 문제이다.

dp[i]=dp[i]= ii 번째 행성으로 이동할 수 있는 가장 빠른 시간이라고 하자.

dp[1]=0dp[1]=0 이고, 정답은 dp[N]dp[N] 이다.

dp[i]=Minj=1i1{dp[j]+pj+(didj)sj}=Minj=1i1{sjdi+dp[j]+pjdjsj} \begin{aligned} dp[i]= Min_{j=1 \dots i-1}\{ dp[j]+p_j+(d_i-d_j)s_j\}\\ =Min_{j=1 \dots i-1}\{s_jd_i+dp[j]+p_j-d_js_j\} \end{aligned}

이므로, sjs_j 가 직선의 기울기이다.

N100,000N \le 100,000 이므로 추가적인 최적화가 필요없을 것 같다.

LineContainer 구현체와 함께라면 쉽게 풀 수 있다.

Tags:

Categories:

Updated:

Comments