Multiplicació òptima de matrius P11455


Statement
 

pdf   zip

Donades dues matrius amb dimensions n1×n2n_1 \times n_2 i n2×n3n_2 \times n_3, el cost de l’algorisme habitual per multiplicar-les és Θ(n1n2n3)\Theta(n_1 n_2 n_3). Per senzillesa, considerem que el cost és exactament n1n2n3n_1 n_2 n_3.

Suposem que hem de calcular M1××MmM_1 \times \dots \times M_m, on cadascuna de les MiM_i és una matriu amb dimensions ni×ni+1n_i \times n_{i+1}. Com que el producte de matrius és associatiu, es pot triar en quin ordre es fan les multiplicacions. Per exemple, per calcular M1×M2×M3×M4M_1 \times M_2 \times M_3 \times M_4, es podria fer (M1×M2)×(M3×M4)(M_1 \times M_2) \times (M_3 \times M_4), amb cost n1n2n3+n3n4n5+n1n3n5n_1 n_2 n_3 + n_3 n_4 n_5 + n_1 n_3 n_5, o bé M1×((M2×M3)×M4)M_1 \times ((M_2 \times M_3) \times M_4), amb cost n2n3n4+n2n4n5+n1n2n5n_2 n_3 n_4 + n_2 n_4 n_5 + n_1 n_2 n_5, o bé tres altres ordres possibles.

Feu un programa que trobi el cost mínim de calcular M1××MmM_1 \times \dots \times M_m.

Entrada

L’entrada consisteix en diversos casos, cadascun amb mm seguit de les m+1m + 1 dimensions. Suposeu 2m1002 \le m \le 100 i 1ni1041 \le n_i \le 10^4.

Sortida

Per a cada cas, escriviu el cost mínim de calcular el producte de les mm matrius.

Public test cases
  • Input

    2   1 2 3
    3   10 20 30 40
    10  9000 4000 3500 8000 2000 7500 6000 1000 8500 5500 7000
    

    Output

    6
    18000
    302250000000
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++