![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,428
|
![]()
Вадим Мошев, координаты тоже одномерные и они нужны, так как гвозди можно вбивать через разное расстояние друг от друга.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#12 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#13 | |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]() Цитата:
Ведь решение то же, что и я написал ранее? Предположим, что у нас три гвоздя. Расстояние между первым и вторым равно 1 километру. Между вторым и третьим составляет 1000 километров. Соединяем первый гвоздь ниткой со вторым. Второй связываем с третьим. Несмотря на то, что общая протяжённость нитки громадная, она является минимальной из возможных. Я прав? Та как вам моё вариант решения поставленной задачи? То есть, нам просто надо просуммировать получившиеся расстояния для получения выходного результата, хотя в коде этого я не наблюдал. Может, я чего-то не понимаю? ЗЫ. Конечно, если гвозди расположены на одном и том расстоянии друг от друга, то можно не суммировать расстояния, а вообще умножить количество соединённых пар на расстояние между гвоздями. Последний раз редактировалось Вадим Мошев; 16.10.2013 в 21:06. |
|
![]() |
![]() |
![]() |
#14 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,428
|
![]()
Хорошо, а такой пример:
* 4 * 1 * 2 * 3 * (* - гвоздь) Соединили по-Вашему: * 4 * 1 * 2 * 3 * = 4 + 2 + 3 Минимум: * 4 * 1 * 2 * 3 * = 4 + 1 + 3
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#15 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
![]() Три гвоздя связываются друг с другом при любом расстоянии по условиям задачи. Вот, посмотрите пример BDA, он наглядно показал, в чём Вы ошибаетесь. |
|
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]()
Я пока что не могу понять, какой гвоздь с каким соединяется в вашем примере. Единственное, что я понял - это то, что цифры обозначают расстояния между гвоздями
|
![]() |
![]() |
![]() |
#17 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]()
Ребята, вы о чём? Задача легко решается методом Коммивояжёра.
Находим минимальную длину общего пути, затем удаляем пути через один, начиная с самого длинного. Получаем пары с самыми короткими путями.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
![]() |
![]() |
![]() |
#18 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,428
|
![]()
Красным выделены соединения.
В Вашем случае 1 и 2, 3 и 4, 4 и 5. Минимум - 1 и 2, 2 и 3, 4 и 5.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите пожалуйста решить задачу. | isyakin | Помощь студентам | 0 | 28.09.2013 20:10 |
Помогите, пожалуйста, решить задачу | medved_d | Общие вопросы C/C++ | 0 | 28.09.2013 12:16 |
Помогите решить задачу, пожалуйста! | Elizaveta | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 10.11.2008 02:29 |