IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Графы - поиск минимального пути, (олимпиадная задача)
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Здравствуйте. Помогите пожалуйста решить такую вот задачу:
При посадке на поверхность планеты Колонния, представляющей собой бесконечную плоскость с введенной на ней декартовой системой координат, десантник Шагаев оказался в точке (xd,yd). Вообще-то, ему хотелось бы оказаться в точке (xb,yb), где расположена база, поэтому он направился туда кратчайшим путем. Дело осложняется тем, что на поверхности планеты от прежней цивилизации остались N колонн прямоугольного сечения со сторонами, параллельными осям координат (которые, собственно, и вводились из этих соображений). Известны координаты двух противоположных вершин каждой из колонн: (xi1,yi1) и (xi2,yi2). Известно, что прямоугольники колонн имеют ненулевую площадь и что у каждой пары разных колонн нет общих точек. Конечно, Шагаев не может проходить сквозь колонны, но может двигаться вплотную к их вертикальным стенам. Начальная и конечная точка маршрута находятся вне этих колонн. Какое наименьшее расстояние должен пройти десантник, чтобы достигнуть цели?
Формат ввода: первая строка входного файла содержит числа xd, yd, xb, yb - координаты десантника и базы. Вторая строка содержит число n - кол-во колонн(0=<n=<40). Следующие n строк содержат описания колонн: в строке с номером i+2 содержаться координаты xi1, yi1,xi2, yi2. Все координаты являются целыми числами, по модулю не превосходящими 10000. Числа в строках разделяются пробелами.
Формат вывода: В первой строке выходного файла должно содержаться единственное вещественное число - длина кратчайшего пути с точностью до трех знаков после запятой.
Пример1:
input.txt output.txt
1 0 2 0 1.00000
0

Пример2:
input.txt output.txt
1 0 2 0 3.8284271
1
0 -1 1 1

Вся моя проблема в том, что я не понимаю как не проверять те ветки, в которые Шагаев идти не может(если стоит две колонны, то при обычном переборе от начальной точки до угла второй колонны потянется ребро, что невозможно, т.к. Шагаев не может идти сквозь первую колонну). Вообще нужно написать консольное приложение на Delphi 7, но мне важен только тот момент, где через графы ищется мин. путь.

Всем заранее спасибо, надеюсь на вашу помощь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 16:11
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name