-
B - Frog 2 / atcoder.jpatcoder.jp 2019. 12. 26. 19:49728x90
A - Frog 1을 푸셨다면 충분히 풀 수 있는 문제입니다.
\begin{aligned}
문제 정의에 따라서, 2\leq N \leq 10^5 \\
v_i : i 번째\quad 까지도착하는대\quad 도달하는\quad 최소\quad 비용 (0 \leq i < N) \\
h_i 는 각 돌의 이동 비용 \\
v_i = min(abs(h_{i-k}-h_i)+v_{i-k}) \quad 1 \leq k < K \quad and \quad i-k \geq 0 \\
\end{aligned}import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int K = sc.nextInt(); int[] h = new int[N]; for(int i=0; i<N; ++i) { h[i] = sc.nextInt(); } int r = jump(N, K, h); System.out.println(r); } public static int jump(int N, int K, int[] h) { int[] v = new int[N]; K = Math.min(N-1, K); for(int j=1; j<N; ++j) { int t = Integer.MAX_VALUE; boolean bContinue = true; for(int d=1; d<=K && bContinue; ++d) { int i = j-d; if(i>=0){ t = Math.min(Math.abs(h[i]-h[j]) + v[i], t); } else { bContinue = false; } } v[j] = t; } return v[N-1]; } }
728x90'atcoder.jp' 카테고리의 다른 글
F - LCS / atcoder.jp (0) 2019.12.31 E - Knapsack 2 / atcoder.jp (0) 2019.12.29 D - Knapsack 1 / atcoder.jp (0) 2019.12.27 C - Vacation / atcoder.jp (0) 2019.12.27 A - Frog 1 / atcoder.jp (0) 2019.12.26