Dieser Artikel löst das Problem der Spiralbücher. Die Sprache verwendet Python. Ich habe auch ein Biss-Memo geschrieben, also beziehen Sie sich bitte darauf.
chapter2
Maximum Profit
n = int(input())
price = []
for k in range(n):
price.append(int(input()))
min_price = 1000000001
max_pro = -200000
for i in range(n):
max_pro = max(max_pro, price[i]-min_price)
min_price = min(price[i], min_price)
print(max_pro)
11.4 Kettenmatrixprodukt
Erstens ist es schwierig, eine schrittweise Formel zu formulieren. Darüber hinaus ist es schwierig, über die Reihenfolge der Berechnung nachzudenken. Die Reihenfolge der Berechnung ist [hier](https://aotamasaki.hatenablog.com/entry/2019/11/03/%E8%9E%BA%E6%97%8B%E6%9C%AC%E3%82 % 92Python% E3% 81% A7% E8% A7% A3% E3% 81% 8F_Part2 # P257-ALDS1_10_B-Matrix-Ketten-Multiplikation)
n = int(input())
p = []
for t in range(n):
a, b = map(int, input().split())
if t == 0:
p.append(a)
p.append(b)
'''
dp[i][j]Ist Mi.~Minimale Anzahl von Multiplikationen zur Berechnung von Mj
'''
dp = [[float('inf')] * (n+1) for j in range(n+1)]
for k in range(n+1):
dp[k][k] = 0
dp[0][k] = 0
dp[k][0] = 0
#l ist der Abstand von der diagonalen Komponente
for l in range(1,n+1):
for i in range(0,n-l+1):
j = i + l
for k in range(0,j-i):
dp[i][j] = min(dp[i][j], dp[i][i+k] + dp[i+k+1][j] + p[i-1] * p[j] * p[i+k])
print(dp[1][n])
'''
Eingang
6
30 35
35 15
15 5
5 10
10 20
20 25
Ausgabe
15125
'''