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

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

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

> помогите разобраться в заданиях, задания на поиск в глубину
maksimla
сообщение 3.03.2009 11:29
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

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


поиск в глубину обратный метод
Первое задание
Напишите идею решение рюкзака задание. Задание рюкзака. Есть n вещей, пронумерованы от 1 до n.
Каждая вещь имеет свою ценность ki и массу m (1<=i<=n).
Найдите самое ценное (если есть несколько то любой из них) вещие набор , которых общая масса не превышала max (со всеми i max>=mi).

Вот такая задачка. Скажите тут все эти данные откуда берутся с клавиатуры вводятся ?
Вещи называются как то или просто вещи 1, 2 и так далее?
Тут надо несколько вещей самых ценных написать в ответе или одну вещь ?
Как все это сделать методом поиска в глубину обратным методом?

То выходит если так то очень просто сперва сортируешь ценности вещь каждую в порядке уменьшения потом выводишь вещь самую ценную проверяешь на max и тогда выводишь на экран или если несколько вещей надо вывести то когда отсортируешь то тогда вещь сравнивается и постоянно прибавляется вес еще тех вещей до тех пор пока не превысят потом назад делаешь шаг и тогда на экран выводишь вещи самые ценные.


Второе задание
Есть n домино косточек(пластинок если на русском кажется так). Напишите функцию
 dlinnij(n: skolko; 
var A: plostinka): skolko
, которая нашла длиннейший сложены по правилам домино ( домино пластинки соединяются по одинаковым очкам по сторонам ) длину цепочки.Может иметь внутриние процедуры и (или) функции.
Используйте такие общее типы
type skolko=1..28; 
plostinka = array [0..6, 0..6] of boolean;


А тут зачем тип boolean?
а тут что с клавиатуры вводится ?
тут как то надо сделать перебором с двух сторон подставлять пластинки как то наверное может объясните?

мне эти задания надо до 8 сделать этого месяца
и еще вот это задание подсчет чисел
но чего то все молчат там сейчас





--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
maksimla
сообщение 4.03.2009 20:00
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

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


вот нашел в интернете задание про дамено я но программа какаето сложная как для меня
можете обеснить или упростить и обеснить мне ее?
и эта программа на поиск в глубину?
{ Задача "Домино",решение:А.Никитина,Самара }
{$M $C000,0,650000}
const max = 28;
maxtime = 60;
tl :longint = (maxtime*18); {чутьменьше 60сек }
yes :boolean = false; {флаг выхода, если ужеестьцепочкаиз n}
var m :array [0..6,0..6] of boolean;
n :byte; {кол-вокостяшекнавходе, 1..28}
cep,best :array [1..max*2] of byte; {цепочка/память }
p,maxlen :integer; { указатель нахвостцепочки/длинамакс.цеп. }
jiffy :longint absolute $0040:$006C; {секундомер,точнеетикомер }

procedure ReadData; { начальные установкиисчитываниеданных }
var i,a,b : byte;
begin
tl:=jiffy + tl;
p:=1; maxlen:=0;
assign(input,'d.in'); reset(input);
fillchar(cep,sizeof(cep),0);
fillchar(m,sizeof(m),false);
readln(n);
for i:=1 to n do begin
readln(a,b);
m[a,b]:=true; m[b,a]:=true;
end;
close(input);
end;

procedure WriteResults; {записьрезультата }
var i : integer;
begin
assign(output,'d.out'); rewrite(output);
writeln(maxlen div 2);
if (maxlen>1) then begin
i:=1;
while (i<pred(maxlen)) do begin
write(best[i],best[i+1],':');
inc(i,2);
end;
write(best[pred(maxlen)],best[maxlen]);
end;
close(output);
end;
{ более длинная цепочказапоминаетсявмассиве best }
procedure s_cep;
begin
if (p-1>maxlen) then begin
move(cep,best,p-1);
maxlen:=p-1;
yes:=(maxlen div 2=n);
end;
end;
{ сущеуствует лиещеподходящиекостяшки? }
function exist(k:integer):boolean;
var i : integer;
begin
i:=0; while (i<=6) and not(m[k,i]) do inc(i);
exist:=(i<=6);
end;
{построениецепочек }
procedure make_cep(f:integer);
var s:integer;
begin
if (yes) or (tl-jiffy<=0) then exit; {пораостановиться?}
if (m[f,f]) then begin {исключениепозволяетулучшитьперебор}
m[f,f]:=false; {убираемкостяшку }
cep[p]:=f; cep[succ(p)]:=f; inc(p,2); {идеяисключения -Савин}
if exist(f) then make_cep(f) else s_cep;
dec(p,2);
m[f,f]:=true; {возвращаемкостяшку }
end else
for s:=0 to 6 do {стандартныйбэк-трекинг}
if (m[f,s]) then begin
m[f,s]:=false; m[s,f]:=false; {убираемкостяшку }
cep[p]:=f; cep[succ(p)]:=s; inc(p,2);
if exist(s) then make_cep(s) else s_cep;
dec(p,2);
m[f,s]:=true; m[s,f]:=true; {возвращаемкостяшку }
end;
end;

var i:integer;
begin
ReadData;
for i:=0 to 6 do make_cep(i);
WriteResults;
end.


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
maksimla   помогите разобраться в заданиях   3.03.2009 11:29
Unconnected   Вот "мы" то откуда знаем? :blink: В...   3.03.2009 13:36
Lapp   Сдается мне, что задача о рюкзаке решалась на Фору...   3.03.2009 14:57
maksimla   на форуме набрал в поиске рюкзак выдала пару тем т...   3.03.2009 15:56
Lapp   на форуме набрал в поиске рюкзак выдала пару тем т...   5.03.2009 12:39
maksimla   я так вот что сделал только незнаю то или нето выв...   3.03.2009 19:16
maksimla   вот в процедуру записал еще яprogram kuprine; type...   4.03.2009 13:21
maksimla   вот нашел в интернете задание про дамено я но прог...   4.03.2009 20:00
Unconnected   Может, ещё и условие приложишь к ней? :)   4.03.2009 20:08
maksimla   ну и могу условие приложить там но это условие был...   4.03.2009 20:09
Unconnected   В условие я не вникал (не понял, блин!), а про...   4.03.2009 20:28
maksimla   какие точки нарисованы не понел тут же графики нет...   5.03.2009 10:16
maksimla   да точно а мне такого в поиске недало наверное пло...   5.03.2009 12:56
maksimla   а там неправильная 5)задача о рюкзаке : Условие : ...   5.03.2009 17:06
Vinchkovsky   5 предметов, которые стоят "10" и весят...   6.03.2009 23:27
maksimla   а при чем тогда еще 11 надо ввести или еще дополни...   7.03.2009 10:09


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

 



- Текстовая версия 18.07.2025 16:31
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"