2. Considere uma modificacao do problema do corte de barras na qual, além do preço Pi de cada barra, cada corte incide um custo fixo c. O rendimento da empresa associado com uma solução agora é a soma dos preços dos pedaços menos os custos dos cortes realizados. Implemente um algoritmo recursivo com memoização e um algoritmo iterativo com programação dinâmica para resolver esse problema. Suas implementações devem poder mostrar o custo da solução ótima e também mostrar a solução ótima. Em seguida, compare esses dois algoritmos experimentalmente.
Considerações
A questão pede que a implementação seja capaz de retornar o custo da solução ótima e mostrar a solução. Nossas funções são capazes de retornar esses valores, mas optamos por não os mostrar durante a execução dos testes pois iria poluir o console e seria inviável analisar as informações. No entanto, implementamos a função printSolutions
que é capaz de informar o custo e a solução encontrada. Desse modo, pudemos comparar a diferença entre os valores produzidos pelas abordagens dinâmica e gulosa.
Conclusões