Ich habe dies beim Nachschlagen von Problemen bei der dynamischen Programmierung gefunden. Sie erhalten einen nicht-bewertbaren Ausdruck der Form V0 O0 V1 O1 .... Vn-1
Wir müssen Klammern an Stellen setzen, die den Wert des gesamten Ausdrucks maximieren.
V sind die Operanden und O sind die Operatoren. In der ersten Version von Problemoperatoren können * und + und Operanden positiv sein. Die zweite Version des Problems ist völlig allgemein.
Für die erste Version habe ich eine DP-Lösung entwickelt.
Lösung - A [] = Operanden-Array B [] - Operatoren Array T (A [i, j]) - Maximalwert des Ausdrucks T (A [0, n-1]) = max über alle i {(T (A [0, i]) OiT (A [i + 1, n-1]))}
Die Grenzfälle sind trivial (wenn i = j). Ich brauche Hilfe bei folgenden - Analysieren Sie die Laufzeit dieses Algorithmus. Und wenn es ein besseres gibt.
Tags und Links algorithm optimization performance expression dynamic-programming