IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Последовательность чисел, Помогите решить
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Женский
Реальное имя: Оля

Репутация: -  0  +


Помогите решить, пожалуйста, такую задачу:

Задается натуральное число N и последовательность a1, …, aN из N целых чисел.
Мы можем вычеркнуть из этой последовательности какие-то элементы и получить строго возрастающую последовательность.
Требуется найти количество строго возрастающих последовательностей максимальной длины, которые мы можем получить вычеркиванием каких-то элементов из введенной последовательности.

Заранее, спасибо. Оля
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Женский
Реальное имя: Оля

Репутация: -  0  +


Хоть кто-нибудь откликнитесь, пожалуйста, на эту задачу. Помогите решить!!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Ольга @ 10.05.2007 9:36) *

откликнитесь, пожалуйста, на эту задачу. Помогите решить!!!!!

Нет проблем smile.gif.
Оля, а можно тебя попросить?.. Я вот выложу код без комментариев, а ты, если можно, объясни, как он работает. Ну, чтобы была реальная польза от списывания.. Идет?.. smile.gif
Если будут вопросы по отдельным моментам - ответим, будь уверена. yes2.gif

Вот код:
{Quantity of Max Length Strictly Increasing Subchains}
{by Lapp for Olga}
const
n=8;

var
a,e:array[1..n]of integer;
i,j,k,l,m,x:integer;
Gr:boolean;

begin
//Randomize;
for i:=1 to n do begin
a[i]:=Random(n);
e[i]:=0;
Write(a[i]:5)
end;
WriteLn;
m:=1;
k:=1;
repeat
i:=1;
while e[i]=1 do if i<n then begin
e[i]:=0;
Inc(i)
end
else begin
WriteLn('Max Length is ',m,', total of ',k);
ReadLn;
Exit
end;
e[i]:=1;
l:=1;
Gr:=true;
x:=i;
for j:=i+1 to n do if e[j]=1 then begin
Inc(l);
if a[x]>=a[j] then Gr:=false else x:=j
end;
if Gr then if l>m then begin
m:=l;
k:=1
end
else if l=m then Inc(k)
until false
end.


Добавлено через 2 мин.
Да, хочу оговориться, что я считал разными последовательности, составленные из одинаковых чисел, стоящих на разных местах. Иначе говоря, я считал количество способов вычеркивания. Условие можно понимать по-разному, поэтому я счел необходимым привести это уточнение.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Женский
Реальное имя: Оля

Репутация: -  0  +


Спасибо большое за реальную помощь. Я программу опробовала и попробую объяснить (может и не все правильно), как она работает.
Последовательность заполняется случайными числами.
m - максимальное кол-во чисел последовательности
к- количество последовательностей
Далее идет цикл с постусловием. Идет сравнение последующего числа с предыдущим. Выводится на печать "максимальная последовательность из __чисел и количество возможных последовательностей.
А далее я эту часть программы я затрудняюсь объяснить:
    e[i]:=1;
l:=1;
Gr:=true;
x:=i;
for j:=i+1 to n do if e[j]=1 then begin
Inc(l);
if a[x]>=a[j] then Gr:=false else x:=j
end;
if Gr then if l>m then begin
m:=l;
k:=1
end
else if l=m then Inc(k)
until false
Если Вы можете, то поясните, пожалуйста.

М
Ольга, при публикации программного текста обязательно используй теги!
Lapp

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 13:59
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name