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

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

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

 
 Ответить  Открыть новую тему 
> Является ли граф G, свободным от треугольников...
PORTUGAL
сообщение 12.02.2006 15:18
Сообщение #1


Новичок
*

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

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


Написать программу, которая давала бы ответ на вопрос, является ли поданный на ее вход граф G, свободным от треугольников или нет.

Может у кого ест исходник такой проги, если нет то пожалуйста подскажите хотя бы алгоритм решения.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 12.02.2006 16:59
Сообщение #2


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

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


Все просто.

b:=false;
for i:=1 to n do
for j:=1 to n do
for k:=1 to n do
if (a[i,j]>0) and (a[i,k]>0) and (a[j,k]>0) and (i<>j) and (j<>k) then b:=true;



a - матрица смежности.
b - содержит ответ.

только перебор еще можно сократить...
i:=1 to n-2
j:=i+1 to n-1
k:=j+1 to n
тогда не надо проверять что i j k разные..

Сообщение отредактировано: Altair - 12.02.2006 17:03


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
PORTUGAL
сообщение 12.02.2006 17:47
Сообщение #3


Новичок
*

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

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


Я ничего не шарю в дискретке и в графах, поэтому возник вопрос, что нужно заносить в массив a? Какие данные?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 12.02.2006 17:49
Сообщение #4


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

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


методы задания графов
см. матрица смежности + читай теорию графов.
+ faq графы
посмотри там программу, там есть процедура ввода вывода матрицы смежности.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 12.02.2006 18:41
Сообщение #5


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Интересно, а как быть если бы вопрос стоял "свободным от n-уголников" ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 12.02.2006 18:54
Сообщение #6


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

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


Тогда задача сводиться к решению задачи о поиске циклов в графе. ;)


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
PORTUGAL
сообщение 13.02.2006 1:26
Сообщение #7


Новичок
*

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

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


Короче получилось вот что:
Код

Type
Graph = array[1..100,1..100] of longint;
Var
a:graph;
b:boolean;
i,j,n,k:integer;
BEGIN
write('n= ');
readln(n);
For i:=1 to n do
For j:=1 to n do
  begin
    write('G',i,',',j,'= ');
    readln(a[i,j]);
  end;
b:=false;
for i:=1 to n do
for j:=1 to n do
  for k:=1 to n do
  if (a[i,j]>0) and (a[i,k]>0) and (a[i,j]>0) and (a[j,k]>0) and (i<>j) and (j<>k)
   then b:=true;
if b then writeln('Svoboden!!!')
else writeln('Ne svoboden!!!');
readln;
end.


Вроде работает! Всем спасибо за помощь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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