|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.03.2013, 17:10 | #1 |
Пользователь
Регистрация: 19.03.2013
Сообщений: 23
|
Сверхдикая задача про роботов
Здравствуйте, мне дали довольно странную итоговую задачу, помогите разобраться хотя бы, что там от меня требуется?
"Давно, в самом начале развития робототехники, компания X представила первые модели роботов. Роботы могли двигаться по прямой либо вперёд, либо назад. Поэтому в качестве испытательного стенда был выбран бесконечный коридор, в котором находится M выходов. В коридоре расположено N роботов, каждый из которых может двигаться с некоторой постоянной скоростью V(i) вдоль коридора (i=1..n). Цель каждого робота - достичь ближайшего выхода, чтобы покинуть коридор. Роботы передвигаются оптимально и могут обгонять друг друга, не сталкиваясь. Нужно написать программу, определяющую номер робота, который раньше всех выйдет из коридора (если их несколько, то нужно определить всех). Входные данные: В первой строке входного файла записаны два числа N и M (1<=N, M<=1000) - количество роботов и выходов соответственно. Далее следуют N строк, содержащих по два числа, разделённых пробелом. В первой - координаты и скорость 1-го робота, в последней - координаты выходов. Все координаты и скорости - натуральные числа, не превосходящие 10^9. Выходные данные: В первой строке вывести число S - количество роботов, которые раньше всех покинут коридор, во второй - их номера (можно в произвольном порядке)." На файлы пока наплевать, я не могу понять сам процесс решения задачи: с чего мне вообще начать? нужно представить её себе графически, или что? каким образом представить вообще эти выходы? представить движение? как координаты могут быть одним целым числом?! Возможно, я её даже смогу решить, если пойму, с чего начать. |
19.03.2013, 17:44 | #2 |
Пользователь
Регистрация: 30.01.2008
Сообщений: 99
|
Одномерный коридор, координата соответственно одно число
Наверное нужно моделировать движение роботов вычисляя их координату через какой то небольшой промежуток времени, потом сравнивать с координатой выхода - если совпадет робот выходит |
19.03.2013, 17:56 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А что тут моделировать? Есть начальные координаты и скорость каждого робота, а так же координаты выходов. Для каждого робота вычислить ближайший выход и время на перемещение до него. Из полученных N времен выбрать минимальное (-ые) и результат с номером робота на экран или в файл
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
19.03.2013, 17:57 | #4 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Задача обхода лабиринта. Можно решать через графы, но лучше, лабиринт представить в виде массива. Например "стены" обозначить отрицательными числами, "дорожки" - нулями, а выходы - числами большими, чем количество роботов. Номера роботов, соответственно - меньше.
Цитата:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
19.03.2013, 18:00 | #5 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
19.03.2013, 18:17 | #6 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Точно, я чёт пропустил этот пунктик. Ну, тогда вообще всё просто.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
19.03.2013, 18:27 | #7 | |
Участник клуба
Регистрация: 11.08.2012
Сообщений: 1,226
|
Цитата:
1)Вот смотрите, в условии задачи дан корридор с M выходов, а сами координаты выходов, судя по входным данным, не известны. Как быть? 2)"В первой строке вывести число S - количество роботов, которые раньше всех покинут коридор". А это как понимать? Что означает раньше остальных? Если каждый из 10 роботов придёт на секунду позже предыдущего, то кто из них будут считаться пришедшими раньшими? Последний раз редактировалось Kix.IV; 19.03.2013 в 18:29. |
|
19.03.2013, 18:35 | #8 | ||
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Цитата:
Если хоть один достиг, - выход из цикла. Если не достиг, делаем следующий шаг. Но, если это всё-же не лабирнт, то можно вычислить и иначе. Как написал Аватар, просто сравнить координаты роботов и блищайших к ним выходов. Какой из них окажется ближе - тот и "выиграл".
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 19.03.2013 в 18:38. |
||
19.03.2013, 18:56 | #9 | ||
Участник клуба
Регистрация: 11.08.2012
Сообщений: 1,226
|
Цитата:
Цитата:
|
||
19.03.2013, 19:55 | #10 | ||||||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 19.03.2013 в 20:01. |
||||||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программы на заказ Builder c++/Visual c++/Дельфи/php. Разработка торговых роботов | Miller-1981 | Фриланс | 0 | 12.12.2012 17:24 |
Задача про графы | nic-nic | Помощь студентам | 1 | 11.10.2012 20:24 |
Задача про файлы | Fmk | Помощь студентам | 0 | 17.05.2012 19:16 |
Услуги по созданию торговых роботов | AgentSmit | Фриланс | 0 | 04.01.2012 18:09 |
Программы на заказ Delphi/Builder c++/Visual c++ , для SEO/накрутки просмотров, торговых роботов. | Miller-1981 | Фриланс | 0 | 08.02.2011 23:15 |