Bài toán tìm tổng con lớn nhất. Giả sử một công ty du lịch đã thiết kế một chương trình du lịch cố định đi qua lần lượt n địa điểm.
Giải thích
Hướng dẫn:
Gọi S(i, j) = A[i] + A[i + 1] + ... + A[j]
Khi đó bài toán đặt ra là cần tìm i, j sao cho giá trị S(i, j) lớn nhất. Từ đó suy ra lời giải đơn giản sau:
A = [1,7,-5,-9,3,-1,10,-6, 5]
n = len(A)
imax = 0
jmax = 0
Smax = A[0]
for i in range(n):
S = 0
for j in range(i,n):
S = S + A[j]
if S > Smax:
imax = i
jmax = j
Smax = S
print("Chương trình du lịch tối ưu là:")
print(imax, jmax)
for i in range(imax, jmax+1):
print (A[i], end = " ")