|
|
Дистанционные семинары
по подготовке к олимпиадам по информатике
Пусть c1,c2, ... ,cn, - данная последовательность.
Покажем, как найти длину максимальной возрастающей подпоследовательности,
заканчивающуюся в элементе ck (обозначим ak).
Предположим, она уже найдена. Удалим из нее последний элемент. Полученная
подпоследовательность является максимальной возрастающей подпоследовательностью,
оканчивающейся в некотором элементе cj (j < k). Значит, либо
ak = max{j < k, cj < ck}{aj} + 1,
либо ak = 1, если таких j не существует.
Ответом на поставленную задачу будет максимум из всех ak.
Число действий, выполненных данным алгоритмом, пропорционально N2.
|