Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
n = int(input())
h = list(map(int, input().split()))
a = []
for i in range(n):
a.append(0)
a[1] = a[0] + abs(h[0] - h[1])
for i in range(2, n):
a[i] = min((a[i-1] + abs(h[i]-h[i-1])), (a[i-2] + abs(h[i]-h[i-2])))
print(a[-1])
Hãy giúp mọi người biết câu trả lời này thế nào?
`+` Đây là bài toán quy hoạch động cơ bản.
`+` Với `l_1 = |l_0-l_1|`, `l_i` là chi phí nhỏ nhất từ `a_0` đến `a_i` `=` chi phí nhỏ nhất của `l_(i-1)+|a_(i-1)-a_i|` và `l_(i-2)+|a_(i-2)-a_i|` (*`l_(i-1)` là chi phí nhỏ nhất từ `a_0` đến `a_(i-1)`; `l_(i-2)` là chi phí nhỏ nhất từ `a_0` đến `a_(i-2)`; `a` là mảng được nhập).
`+` Sau đó, `l_(n-1)` là kết quả của bài toán.
`+` Code:
n = int(input())
a = list(map(int,input().split()))
l = [0]*n
l[1] = abs(a[0]-a[1])
for i in range (2,n):
l[i] = min(l[i-1]+abs(a[i-1]-a[i]), l[i-2]+abs(a[i-2]-a[i]));
print(l[n-1])
`+` Test code: Ảnh
$\\$
`@Daoanhviet96`
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin