Date due matrici A
e B
, ciascuno contenente n
numeri non negativi, rimuovere a>0
elementi dalla fine di A e b>0
elementi da fine B. Valutare il costo di un'operazione come X*Y
dove X
è la somma degli elementi a
rimossi da A
e Y
la somma degli elementi b
rimossi da B
. Continua a farlo finché entrambi gli array non sono vuoti. L'obiettivo è ridurre al minimo il costo totale.Dato 2 array di numeri non negativi, trovare la somma minima di prodotti
Utilizzo della programmazione dinamica e il fatto che una strategia ottimale richiede sempre esattamente un elemento da A
o B
È possibile trovare una soluzione O (n^3). Ora sono curioso di sapere se c'è una soluzione ancora più veloce a questo problema?
EDIT: Rubare un esempio @recursive nei commenti:
A = [1,9,1] e B = [1, 9, 1]. Possibile fare con un costo di 20. (1) * (1 + 9) + (9 + 1) * (1)
Secondo me la soluzione dovrebbe selezionare gli ultimi due elementi di ciascun array sommarli e quindi aggiungere. Sopra). –
Se ho torto, per favore chiarisci la dichiarazione del problema per me –
Secondo la tua dichiarazione dobbiamo rimuovere dalla fine di A e alla fine di B –