![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
PORTUGAL |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Написать программу, которая давала бы ответ на вопрос, является ли поданный на ее вход граф G, свободным от треугольников или нет.
Может у кого ест исходник такой проги, если нет то пожалуйста подскажите хотя бы алгоритм решения. |
![]() ![]() |
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Все просто.
b:=false; 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 -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
PORTUGAL |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я ничего не шарю в дискретке и в графах, поэтому возник вопрос, что нужно заносить в массив a? Какие данные?
|
Altair |
![]()
Сообщение
#4
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
методы задания графов
см. матрица смежности + читай теорию графов. + faq графы посмотри там программу, там есть процедура ввода вывода матрицы смежности. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
klem4 |
![]()
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Интересно, а как быть если бы вопрос стоял "свободным от n-уголников" ?
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Altair |
![]()
Сообщение
#6
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Тогда задача сводиться к решению задачи о поиске циклов в графе. ;)
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
PORTUGAL |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: ![]() ![]() ![]() |
Короче получилось вот что:
Код 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. Вроде работает! Всем спасибо за помощь! |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 7:56 |