Znalazłem to podczas wyszukiwania problemów z programowaniem dynamicznym. Otrzymałeś niezrównane wyrażenie formy V0 O0 V1 O1 .... Vn-1Algorytm zamawiania wyrażenia w celu zmaksymalizowania jego wartości
Musimy umieścić nawiasy w miejscach, które maksymalizują wartość całego wyrażenia.
V to operandy, a O to operatory. W pierwszej wersji problemu operatorzy mogą być * i +, a operandy są dodatnie. Druga wersja problemu jest całkowicie ogólna.
W pierwszej wersji znalazłem rozwiązanie DP.
Rozwiązanie - A [] = operandy Tablica B [] - operatorów Tablica T (A [i, j]) - maksymalna wartość ekspresji T (A [0, n-1]) = max ponad all i {(T (A [0, i]) Oi T (A [i + 1, n-1]))}
Przypadki graniczne są trywialne (gdy i = j). Potrzebuję pomocy w następujących sprawach: Przeanalizuj czas działania tego algorytmu. A jeśli istnieje lepszy.
Reffer do Thomasa H. Cormena - Wprowadzenie do algorytmów, rozdział - Programowanie dynamiczne. Nigdzie nie znajdziesz lepszego wyjaśnienia. –