Ci viene dato un set di Frutta. Ogni frutto ha un prezzo e contenuto vitaminico ; abbiamo associato la frutta con la coppia ordinata . Ora dobbiamo sistemare questi frutti in modo tale che l'elenco ordinato contenga i prezzi in ordine crescente e il contenuto vitaminico in ordine decrescente.
Esempio 1 : e .
Se disponiamo l'elenco in modo tale che tutti i prezzi siano in ordine crescente e i contenuti vitaminici in ordine decrescente, gli elenchi validi sono i seguenti:
Tra gli elenchi sopra, voglio scegliere l'elenco di dimensioni massime. Se più di un elenco ha dimensioni massime, dovremmo scegliere l'elenco di dimensioni massime la cui somma dei prezzi è minima. L'elenco che dovrebbe essere scelto nell'esempio sopra è.
Esempio 2 : e
La risposta a questa istanza di esempio è .
Fino ad ora, questo è quello che ho fatto:
- Ordinare l'elenco originale in ordine crescente di prezzo;
- Trova tutte le sottosequenze dell'elenco ordinato;
- Verifica se la sottosequenza è valida e confronta tutte le sottosequenze valide.
Tuttavia, ciò richiede tempo esponenziale; come posso risolvere questo problema in modo più efficiente?