Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2010, 10:10   #1
nemeli
Новичок
Джуниор
 
Регистрация: 15.02.2010
Сообщений: 3
По умолчанию Pascal. нахождения самой длинной возрастающей подпоследовательности

Не могу решить её, хоть убей
Помогите советом........

Задана последовательность из N чисел. Составить программу нахождения самой длинной возрастающей подпоследовательности данной последовательности.
nemeli вне форума Ответить с цитированием
Старый 15.02.2010, 10:45   #2
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Код:
sum:=0;
maxsum:=0;
for i:=1 to n-1 do
begin
if a[i+1]> a[i];
sum:=sum+1
else
if sum>maxsum then 
begin
maxsum:=sum;
max:=i+1;
min:=i+1-maxsum;
end
Гдей то так. Алгоритм. Наверняка - куча ошибок, но путь поможет найти

Последний раз редактировалось Stilet; 15.02.2010 в 11:30.
danekne вне форума Ответить с цитированием
Старый 15.02.2010, 10:50   #3
nemeli
Новичок
Джуниор
 
Регистрация: 15.02.2010
Сообщений: 3
По умолчанию

Не это то мне понятно, мне интересна модель вывода элементов самой длинной возрастающей подпоследовательности
nemeli вне форума Ответить с цитированием
Старый 15.02.2010, 11:01   #4
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Код:
for i:=min to max do
write (a[i],' ')

Последний раз редактировалось danekne; 15.02.2010 в 11:54.
danekne вне форума Ответить с цитированием
Старый 15.02.2010, 15:29   #5
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Народ, подпоследовательность - это, вообще-то, другое
Решать динамикой за квадрат проще всего.
Только для каждого номера храните не только ответ поэтому номеру, но и указатель на предидущий член последовательности, которая является ответом для этого номера. Для первых хранить всегда ноль. Тогда получится что-то типа
Код:
while t<>0 do begin 
write(ar[t],' ');
t:=w[t];end;
LeBron вне форума Ответить с цитированием
Старый 16.02.2010, 16:12   #6
nemeli
Новичок
Джуниор
 
Регистрация: 15.02.2010
Сообщений: 3
По умолчанию

Спасибо danekne, твоя идея мне очень помогла Немного покалдовал и получилась достаточно сносная программка
nemeli вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текст в очень длинной таблице ANG3 Microsoft Office Word 2 27.01.2010 19:58
Pascal,Алгоритм для нахождения в тексте дополнений kikimka Помощь студентам 6 18.11.2009 15:57
Определить, сколько букв в самой длинной фамилии списка. lunnamedl Помощь студентам 4 29.06.2009 11:33
Помогите с длинной арифметикой! Марина* Паскаль, Turbo Pascal, PascalABC.NET 1 06.06.2009 21:29
Содержит ли текст заданную отдельную строку длинной не более 255 из символов 0 и 1 Curtis Помощь студентам 1 15.02.2009 20:08