Nos é dado um conjunto do Frutas. Cada fruta tem preço e conteúdo vitamínico ; associamos a fruta ao par ordenado . Agora temos que organizar essas frutas de forma que a lista classificada contenha preços em ordem crescente e conteúdo de vitaminas em ordem decrescente.
Exemplo 1 : e .
Se organizarmos a lista de modo que todo o preço esteja em ordem crescente e o conteúdo de vitaminas em ordem decrescente, as listas válidas serão as seguintes:
Nas listas acima, desejo escolher a lista de tamanho máximo. Se mais de uma lista tiver tamanho máximo, devemos escolher a lista de tamanho máximo cuja soma dos preços seja menor. A lista que deve ser escolhida no exemplo acima é .
Exemplo 2 : e
A resposta para esta instância de exemplo é .
Até agora, é isso que tenho feito:
- Classifique a lista original em ordem crescente de preço;
- Encontre todas as subsequências da lista classificada;
- Verifique se a subsequência é válida e compare todas as subsequências válidas.
No entanto, isso leva tempo exponencial; como posso resolver esse problema com mais eficiência?