powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача "Олимпиадная"
11 сообщений из 11, страница 1 из 1
Задача "Олимпиадная"
    #37574060
grigorill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте очень нужна помощь, с графами столкнулся впервые. Суть такая, есть N вершин, между ними есть ребра (длину ребер мы задаем сами целым числом). По ребрам ездят точки могут ехать в обе стороны. При нахождении 2 точек в одной вершине происходит столкновение, соответственно если точки едут по 1 ребру навстречу друг-другу тоже произойдет столкновение. Движение точек заданы списком вершин через которые они проходят. Скорости точек =1. По достижению конечной вeршины тoчка исчезает. По зaданной конфигурации сети и точек oпределить будет ли стoлкновение?
Пишу на c# буду благодарен за любую помощь.
...
Рейтинг: 0 / 0
Задача "Олимпиадная"
    #37574082
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grigorill,

Для решения тебе почти ничего и не надо знать о графах.
Просто моделируй состояние системы во времени.
Изменение состояния системы происходит, когда одна из точек
попадает в новую вершину.
...
Рейтинг: 0 / 0
Задача "Олимпиадная"
    #37574092
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, даже граф здесь ни при чём...
При заданной длине ребер и списке вершин для пути точек - построим список путей для каждой точки в виде отрезков на числовой прямой, при этом каждое ребро (отрезок) будет иметь и уникальный идентификатор. А затем найдем пересечение этих путей (сложим их все на одну прямую), при этом запоминая идентификаторы, входящие в каждый отрезок. При этом получим множество отрезков, и там, где будут иметься совпадающие идентификаторы - там и будут "столкновения"...
...
Рейтинг: 0 / 0
Задача "Олимпиадная"
    #37574102
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, было бы интерересно решить данную задачу чисто "физически", т.е. в графическом виде. Если длины рёбер различаются не на порядки, то картинку можно даже нарисовать.

Ну и не забываем об одном упущенном вопросе - при "столкновении" точки тоже исчезают? или продолжают двигаться дальше, но мы просто учитываем "встречу"?
...
Рейтинг: 0 / 0
Задача "Олимпиадная"
    #37574116
grigorill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конкретно ничего не сказано, но как я представляю окончание работы.
...
Рейтинг: 0 / 0
Задача "Олимпиадная"
    #37574121
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMпри "столкновении" точки тоже исчезают? или продолжают двигаться дальше, но мы просто учитываем "встречу"?там надо выяснить, будет ли хоть одно столкновение
...
Рейтинг: 0 / 0
Задача "Олимпиадная"
    #37574133
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grigorill,

Чуть более конкретно.
Состояние системы = вектор состояний точек.
Состояние точки = ребро, направление, остаточное время движения.
Для перехода в новое состояние находим минимальное остаточное время.
Переходим, корректируя состояние системы.
Повторяем в цикле.

Нужно еще конкретнее - задавай конкретный вопрос.
...
Рейтинг: 0 / 0
Задача "Олимпиадная"
    #37574189
grigorill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если конкретнее, как привязать к каждой точке список вершин. Через массив, или как лучше? Или создавать новый объект со своими уникальными параметрами?
...
Рейтинг: 0 / 0
Задача "Олимпиадная"
    #37574223
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grigorill, ???

вообще-то, рабочей моделью предложен список временнЫх меток с набором прошедших метку точек-направлений...
...
Рейтинг: 0 / 0
Задача "Олимпиадная"
    #37574433
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grigorill,


Можно попробовать составить для каждой вершины "расписание" прибытия каждой точки в эту вершину, при условии, что других точек (и столкновений) нет. Если есть вершины, в которых время прибытия нескольких точек одинаковое - столкновение в этой вершине. Столкновение на ребре детектируется аналогично, но с учетом направления движения.
...
Рейтинг: 0 / 0
Задача "Олимпиадная"
    #37574783
Фотография AlexandrPlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grigorillЗдравствуйте очень нужна помощь, с графами столкнулся впервые. Суть такая, есть N вершин, между ними есть ребра (длину ребер мы задаем сами целым числом). По ребрам ездят точки могут ехать в обе стороны. При нахождении 2 точек в одной вершине происходит столкновение, соответственно если точки едут по 1 ребру навстречу друг-другу тоже произойдет столкновение. Движение точек заданы списком вершин через которые они проходят. Скорости точек =1. По достижению конечной вeршины тoчка исчезает. По зaданной конфигурации сети и точек oпределить будет ли стoлкновение?
Пишу на c# буду благодарен за любую помощь.

наверно - могут ли быть такие пути, что столконовения не будет , если все имеющиеся точки одновременно стартовали, не могут простаивать, надо пройти по не менее трем вершинам, путь не может проходить по вершинам, где уже была, ...?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача "Олимпиадная"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]