精進2日目 :DPコンテスト A-Frog1
A-Frog1 を自力で解けた
うんうん唸りつつ、自力で解けました。うれしい!
考え方
カエルさんが各足場に到達したときの、最小のコストを記録してあげればよさそうです。
足場を、各足場でのコストをとすると、
- にいるとき、
- にいるとき、
- にいるとき、
- ・・・
- にいるとき、 ←これが答え。
を愚直に実装すれば通りました。
Python3 で実装したコード
# coding: utf-8
def dp_flog(N, lst):
lst_cost = [0] * N
lst_cost[1] = abs(lst[0] - lst[1])
for i in range(2, N):
lst_cost[i] = min(lst_cost[i-2] + abs(lst[i-2] - lst[i]), lst_cost[i-1] + abs(lst[i-1] - lst[i]))
return lst_cost
N = int(input())
lst_flog = list(map(int, input().split()))
print(dp_flog(N, lst_flog)[N-1])
実行時間 106ms、メモリ 13928 KB でした。
むすび
ほんとにこの実装で良いのかという自問自答はありますが、1月中は AC 取れたらどんどん先に進もうと思います。