Atcoder Educational DP Contest B-Frog2について、この回答で勉強しようと思ったのですがわからない部分があります。
heights[i] - heights[start:i] の部分が、配列同士の引き算で要素数も違うのになぜできてしかも結果が数値になっているのかよくわからず、とりあえず print(heights[i] - heights[start:i]) として確認してみようとしたのですが、この一文をいれると大量のエラーが出てしまいます。(この一文を入れなければ正しく動きます。)どういうことなのでしょうか。
import math import sys import os import numpy as np f = open('input.txt', 'r') sys.stdin = f N, K = map(int, input().split()) H = [int(i) for i in list(input().split())] dp = np.zeros(N, dtype=int) heights = np.array(H) for i in range(1, N): start = max(0, i - K) print(heights[i] - heights[start:i]) dp[i] = (dp[start:i] + np.abs(heights[i] - heights[start:i])).min() print(dp)
回答1件
あなたの回答
tips
プレビュー