最近競技プログラミングを始めた初心者です。
AtCoderで下のURLにある動的計画法の問題をPythonで解きました。
https://atcoder.jp/contests/dp/tasks/dp_b
下のようなコードを書くと、TLE(実行時間超過)となりました。
N, K = map(int, input().split()) h = list(map(int, input().split())) dp=[0]*N for i in range(1,N): dp[i] = min( dp[g] + abs(h[i] - h[g]) for g in range(max(i-K,0), i) ) print(dp[N-1])
しかし、下のようにmain()をつけるとTLEになりませんでした。
def main(): N, K = map(int, input().split()) h = list(map(int, input().split())) dp=[0]*N for i in range(1,N): dp[i] = min( dp[g] + abs(h[i] - h[g]) for g in range(max(i-K,0), i) ) print(dp[N-1]) main()
なぜmain()をつけただけでTLEにならなくなったのかご教授願いたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/10 01:17