Решение для динамического программирования для выбора активности

В16.1 An activity-selection problem изIntroduction to Algorithmрешение динамического программирования для этой задачи было задано как

c [i, j] = 0, если S (i, j) пусто

c [i, j] = max {c [i, k] + c [k, j] + 1}, если S (i, j) не является пустым

гдеS(i, j) обозначает набор действий, которые начинаются после действияa(i) заканчивается и заканчивается до деятельностиa(j) начинается, иc[i, j] обозначает размер оптимального решения для множестваS(i, j)

Тем не менее, я думаю о другом более простом решении

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

гдеf(i) дает активность, которая совместима сa(i) и имеет максимумзакончить время и заканчивать раньшеa(i) начинается.

Будет ли это работать? Если да, то почему автор предоставляет это сложное решение. Если нет, то что мне не хватает?

Ответы на вопрос(2)

Ваш ответ на вопрос