Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2010, 18:34   #1
mivel
 
Регистрация: 23.12.2009
Сообщений: 5
По умолчанию Переправа через реку

Задание:
Группе людей требуется переправиться на другой берег реки. В их распоряжении только двухместная лодка. Для того чтобы всем переправиться на другой берег, решили действовать следующим образом. Двое отправляются на другой берег, а затем один из них возвращается назад. Эта процедура повторяется до тех пор, пока не пройдут все участники группы.
Группа включает N человек. Известно, что i-й участник группы может, управляя лодкой, переправиться на другой берег за ti секунд. Считается, что при переправе в лодке двух участников группы лодкой управляет менее расторопный из этой пары.
Для каждого участника группы время, требуемое для переправы в одном направлении, такое же, как и для переправы в обратном направлении.
Требуется создать программу для определения, за какое наименьшее время и каким образом все участники группы смогут переправиться на другой берег.
Пример. Для трех человек, каждый из которых может перебраться за 5, 5 и 10 мин. соответственно, результат будет 20 мин, и порядок переправ следующий (1 2 2), (2 3).

Алгоритм решения я себе представляю такой:
Находим человека, который может переправиться за наименьшее время. Затем этот человек будет поочередно перевозить всех людей. Брать одного, возвращаться назад и брать следующего.
Это верное решение? Помогите пожалуйста.
mivel вне форума Ответить с цитированием
Старый 19.04.2010, 20:14   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Это верное решение? Помогите пожалуйста.
мне Ваше решение нравится. лично я не вижу огрехов в Вашем алгоритме...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.04.2010, 21:15   #3
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Волк, Коза, Капуста - лодка (есно двухместная), два берега. Всем надо переправится, и без обид. Эта классика даже интересней, тем более в программерском исполнении.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 19.04.2010, 21:41   #4
mivel
 
Регистрация: 23.12.2009
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
мне Ваше решение нравится. лично я не вижу огрехов в Вашем алгоритме...
Да вроде как правильно, но что-то слишком просто.
mivel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переправа Spark3r Общие вопросы C/C++ 6 13.01.2010 12:35
CodeGear. Как сделать, что бы dproj по умолчанию открывалось через Delphi, а не через всю студию? TwiX Общие вопросы Delphi 2 10.11.2009 22:24
Связь с кучей dbf файлов (таблиц) через OLEDB через UNION ALL Sasha811 SQL, базы данных 0 01.01.2009 14:04
через какую сетевую карту входить в инет, а через какую в лан шКОЛЯР Свободное общение 2 27.06.2008 17:55
SSL через WinSock или через что? Jolyk Win Api 2 07.06.2008 17:37