1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
|
|
1 | |
Графы на С++02.10.2009, 22:01. Показов 2360. Ответов 13
Метки нет Все метки)
(
Помогите плиз!
Есть задача: Посвящение в студенты.Есть n студентов.НЕ ВСЕ знают друг друга.Но у каждого есть знакомые..Действует принцип:"Знакомые моих знакомых - мои знакомые" Задача найти пары студентов которых надо познакомить для того чтобы все студенты знали друг дрга... По идее реализуется через Граф,вот только у меня не получается граф на С++ построить..... Помогите кто может...
0
|
|
02.10.2009, 22:01 | |
Ответы с готовыми решениями:
13
Графы Графы Графы Графы |
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,678
|
|
02.10.2009, 22:24 | 2 |
Давай определимся по входным данным.
Пусть имеются 10 студентов, от 0 до 9. Очевидно, если действует принцип "знакомые моих знакомых- мои знакомые", то имеются группы знакомцев. В каждой может быть от 1-го до 10 человек, (если все друг с другом знакомы) Пусть группы такие. 0, 5, 9 1, 2 4 6 3, 7, 8 Теперь по вводу данных. Если вводятся данные так, как я представил (группами то есть), то дело не стоит выведнного яйца. Но они могут вводиться и по другому. Парами. 0 5 5 9 1 2 3 7 7 8 Это посложнее будет уже. Ворос: как вводятся входные данные? С ответом не затягивай, а то решу, как Бог на душу положит.
0
|
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
|
|
02.10.2009, 22:25 [ТС] | 3 |
вводятся парами - (n,m)
Где n и m - номера студентов
0
|
![]() 7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
03.10.2009, 00:19 | 4 |
Какая разница как вводится ?
Граф представляется с помощью матрицы смежности. (1) Можно напрямую подгружать матрицу смежности. (2) Можно вводить с помощью групп. (3) Можно с помощью пар. В любом варианте можем построить матрицу смежности. Но это все не приближает нас к собственно алгоритму ![]() Добавлено через 2 минуты И задача не очень корректно поставлена. Я могу сказать что нужно просто познакомить всех пары, которые еще не знакомы друг с другом напрямую - без посредников. Скорее всего в условии имеется в виду - найти МИНИМАЛЬНОЕ кол-во пар, которых надо познакомить для того чтобы все студенты знали друг друга...
0
|
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
|
|
03.10.2009, 00:40 [ТС] | 5 |
"...Скорее всего в условии имеется в виду - найти МИНИМАЛЬНОЕ кол-во пар, которых надо познакомить для того чтобы все студенты знали друг друга..."
ну дык да....)) звиняюсь за кривые объяснения условия...(( Прост на практике сказали сделать,и что объяснения будут на лекции,а лектор сказал,что объяснит потом как-нибудь))))))))))) Пойду погуглю матрицу скважности))
0
|
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
03.10.2009, 00:43 | 6 |
corri
лектор сказал,что объяснит потом как-нибудь))))))))))) а ты ему скажи, что принесешь потом как-нибудь ![]()
1
|
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
|
|
03.10.2009, 00:45 [ТС] | 7 |
А это вариант
![]() ![]() ![]() Ток лектор и практик разные..(((((
0
|
![]() 7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
03.10.2009, 00:54 | 8 |
Думаю алгоритм такой.
Нужно разбить на области связности. Потом области связности сливать между собой в одну БОЛЬШУЮ область связности путем создания новой пары. Когда будет только одна область связности - задача решена. Если областей связности N, то нужно образовать новых N-1 пар.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,678
|
|
03.10.2009, 00:56 | 9 |
Я решу эту задачу, автор.
И безо всяких графов. В печку графы.
0
|
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
|
|
03.10.2009, 00:59 [ТС] | 10 |
Я буду очень счастлив увидев хоть какой-нить код))
ПАСИБА зараннее..!! Пойду дочитывать матрицы смежности и всё в том же духе1!
0
|
![]() 4726 / 2547 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
03.10.2009, 07:21 | 11 | |||||
corri,
Вот решение без графов:
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,678
|
||||||
03.10.2009, 09:32 | 12 | |||||
Автор, лови:
Значит, идея такова. Все студенты очевидно разбиваются на группы. Каждая группа- связный список. Формируем связные списки. В конце работы выводятся по одному члену из каждого списка. Знакомь их между собой и всё. Одиночки тоже выведутся (если будут). Так что вот.
Добавление. В моём коде слабое место это ввод. Ну, то есть он безошибочен, но громоздко сделан. Это потому, что я не шарю в cin вообще! valeriikozlov, простите. Ситуация такая. Если имеется 8 студентов, разбитых на такие группы знакомых: 0, 1, 2, 3, 4, 5 и 6, 7, 8 Это мне по приглашению ввести количество знакомых пар, чего вводить надо? Ну, то есть, я хотел сказать, что ВООБЩЕ количество знакомых пар тут равно 18 (в первой группе 15 и во второй 3). То есть подсчитывать нужно будет всегда вручную? Впрочем, я уверен, что неправильно Вас понял и Вы этот вопрос проясните.
1
|
![]() 4726 / 2547 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
03.10.2009, 12:43 | 13 |
kravam,
"Ввести количество знакомых пар", это значит следущее: Немного ранее Вы спрашивали как делать ввод у Corri: "Но они могут вводиться и по другому. Парами. 0 5 5 9 1 2 3 7 7 8" и он давал ответ "да, парами". Так вот имеенно под этот вариант и был сделан код. Т.е. если пары такие: 0 5 5 9 1 2 3 7 7 8 то количество пар здесь 5. Добавлено через 1 час 47 минут Извиняюсь, нужно было отлучиться. Еще немного поясню к предыдущему: "Ввести количество знакомых пар" наверное точнее будет - ввести количество вводимых пар. Т.е. если вводимые пары такие: 0 5 5 9 1 2 3 7 7 8 то на предложение "ввести количество знакомых пар" нужно ввести - 5.
0
|
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
|
|
03.10.2009, 15:11 [ТС] | 14 |
ОООО!!!!!
Пасиба!!!! И за комменты как для чайника спасиба!!!!!!!!! Отличнейше всё написано!!!!!! ЗАЧЁТ!!!!
0
|
03.10.2009, 15:11 | |
03.10.2009, 15:11 | |
Помогаю со студенческими работами здесь
14
Графы Графы Графы в С++ Графы Графы Графы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |