Форум программистов, компьютерный форум CyberForum.ru

Поиск минимального цикла - C++

Восстановить пароль Регистрация
 
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
09.01.2014, 17:17     Поиск минимального цикла #1
Очень надеюсь, не ошибусь в терминах.
Имеется полный неориентированый взешенный граф. Вводится числ Н, потом идет матрица смежности НхН, значения которой являются весом ребер. Размер графа равен НхН и инициализируется после ввода числа Н. 1 < H < 100. 1 < Вес ребра < 1000
Ну и вопрос такой же, как и в заголовке - вывести минимальный (самый легкий, короткий) цикл. Выводить цикл вершинами. (1,2,3)
P.S. Таких финтефлюшек, которые их себя в себя, в этом графе нету, то есть в главной диагонали стоят нолики.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
09.01.2014, 17:57     Поиск минимального цикла #2
Domonion, классная задача, она имеет красивое решение с помощью алгоритма флойда. если знаком с иероглифами, то вот http://tadvent.wordpress.com/2009/02/14/最小环-与-floyd/ . можешь еще на тимусе почитать форум к этой задаче: http://acm.timus.ru/problem.aspx?space=1&num=1004
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
09.01.2014, 18:32  [ТС]     Поиск минимального цикла #3
Цитата Сообщение от ya_noob Посмотреть сообщение
Domonion, классная задача, она имеет красивое решение с помощью алгоритма флойда. если знаком с иероглифами, то вот http://tadvent.wordpress.com/2009/02/14/最小环-与-floyd/ . можешь еще на тимусе почитать форум к этой задаче: http://acm.timus.ru/problem.aspx?space=1&num=1004
Я не понял решения у китайцев.

Добавлено через 4 минуты
Дай мне, пожалуйста, код нормальный. Я просто не понимаю, как та программа относится к моей задаче.

Добавлено через 15 минут
UP, задачу к 21-00 по МСК надо сдать сегодня.
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
09.01.2014, 19:05     Поиск минимального цикла #4
Цитата Сообщение от Domonion Посмотреть сообщение
задачу к 21-00 по МСК надо сдать сегодня.
до часа Ч еще 2 часа, есть время разобраться. по китайской ссылке сам алгоритм и написан, правда он ищет только длину цикла, но чуть чуть подумав, можно прикрутить к нему вывод вершин (там всё легко, всего лишь надо запомнить 3 ключевые точки).
Цитата Сообщение от Domonion Посмотреть сообщение
Я просто не понимаю, как та программа относится к моей задаче.
значит вы не разобрались с задачей. подумайте (1) из чего состоит цикл, (2) чем может пригодиться матрица путей, полученной из алгоритма флойда, и (3) какие 3 точки являются ключевыми для построения цикла.
PS: сначала покажите, что вы что-то понимаете в задаче (3 вопроса выше), а уж потом я подумаю давать вам решение задачи или нет.
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
09.01.2014, 19:58  [ТС]     Поиск минимального цикла #5
Цитата Сообщение от ya_noob Посмотреть сообщение
до часа Ч еще 2 часа, есть время разобраться. по китайской ссылке сам алгоритм и написан, правда он ищет только длину цикла, но чуть чуть подумав, можно прикрутить к нему вывод вершин (там всё легко, всего лишь надо запомнить 3 ключевые точки).

значит вы не разобрались с задачей. подумайте (1) из чего состоит цикл, (2) чем может пригодиться матрица путей, полученной из алгоритма флойда, и (3) какие 3 точки являются ключевыми для построения цикла.
PS: сначала покажите, что вы что-то понимаете в задаче (3 вопроса выше), а уж потом я подумаю давать вам решение задачи или нет.
Цикл - путь, начинающийся и кончающийся в одной и той же точке, при условии, что ни одна точка не повторяется.
В этой программе цикл будет состоять из начальной точки, первой точки и самого короткого путя из 1 точки в начальную. Матрица путей нам как раз и пригодится для поиска последнего. А 3 вопрос не понимаю просто. 3 вершины или 3 точки программы?
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
09.01.2014, 20:42     Поиск минимального цикла #6
Цитата Сообщение от Domonion Посмотреть сообщение
Цикл - путь, начинающийся и кончающийся в одной и той же точке, при условии, что ни одна точка не повторяется.
В этой программе цикл будет состоять из начальной точки, первой точки и самого короткого путя из 1 точки в начальную. Матрица путей нам как раз и пригодится для поиска последнего. А 3 вопрос не понимаю просто. 3 вершины или 3 точки программы?
флойд строит лес кратчайших путей из каждой вершины. цикл будет состоять из 2 кратчайших путей из некоторой корневой вершины (1-ая точка) до других 2-х вершин (2-я и 3-я точки) (причем эти пути не имеют общих вершин, кроме корневой), а также те 2 вершины соединяются ребром.

ладно, скину тебе в личку решение той задачи с тимуса (надеюсь ты понял, что там такая же задача)

Добавлено через 14 минут
получил?
Yandex
Объявления
09.01.2014, 20:42     Поиск минимального цикла
Ответ Создать тему
Опции темы

Текущее время: 21:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru