Atcoder DP Contest pA
題敘
https://atcoder.jp/contests/dp/tasks/dp_a
跳到第 $i$ 格的方法有兩種
- 從 $i-1$ 格跳,花費 $\mid arr[i]-arr[i-1] \mid$
- 從 $i-2$ 格跳,花費 $\mid arr[i]-arr[i-2] \mid$
求跳到第 $n$ 格的最小花費
想法
對於每個格子 $i$ 只能從 $i-1$ 和 $i-2$ 轉移過來,因此只需要判斷從誰走過來最小就能保證會是最佳解
定義 $DP[i]$ 表示第 $i$ 格的最小花費
則有轉移式 $DP[i] = min(DP[i-1] + \mid arr[i]-arr[i-1] \mid,\ DP[i-2] + \mid arr[i]-arr[i-2] \mid)$
且 $DP[0] = 0, DP[1] = abs(arr[1]-arr[0])$
Code
1 | //By Koios1143 |
複雜度
有 $n$ 種狀態,每種狀態的轉移複雜度為 $O(1)$
總複雜度 $O(n)$