Solução de programação dinâmica para seleção de atividades

No16.1 An activity-selection problem doIntroduction to Algorithm, a solução de programação dinâmica para esse problema foi fornecida como

c [i, j] = 0 se S (i, j) estiver vazio

c [i, j] = max {c [i, k] + c [k, j] + 1} se S (i, j) não estiver vazio

OndeS(i, j) denota o conjunto de atividades que iniciam após a atividadea(i) termina e que termina antes da atividadea(j) começa ec[i, j] denota o tamanho de uma solução ideal para o conjuntoS(i, j)

No entanto, estou pensando em outra solução mais simples

c[i] = max { c[i - 1], c[f(i)] + 1 }

Ondef(i) fornece a atividade que é compatível coma(i) e tem o maxterminar a hora e termina antesa(i) começa.

Isso vai funcionar? Se sim, por que o autor fornece essa solução complexa. Se não, o que estou perdendo?

questionAnswers(2)

yourAnswerToTheQuestion