Блог пользователя Easy_

Автор Easy_, 10 лет назад, По-русски

Добрый вечер, вот задача из acmp.ru ( Lines )

У меня возникло 2 вопроса.

1) Хотел бы, что бы помогли разобраться с разбором решения этой задачи, только теоритически. Каким бы образом вы ее решили через графы?

2) Если эту задачу решать через обычный волновой алгоритм, то какие есть методы заполнения матрицы числовыми коэффициентами для нахождения пути?

Например:

.  .  .  .  .
.  0  0  0  .
.  1  .  .  .
.  .  0  0  .
.  .  .  99 .
.   - это свободный путь
0   - стена
1   - нач. точка
99  - конеч. точка

результат заполнения должен быть таким:

4  5  6  7  6
3  0  0  0  5
2  1  2  3  4
3  2  0  0  5
4  3  4  99 6

Может кто-то знает рациональное решение(алгоритм) ?

Спасибо.

  • Проголосовать: нравится
  • +8
  • Проголосовать: не нравится

»
10 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Запустим bfs c 2-мерной очередью в которой храним координаты клетки, и во время обхода будем пытаться пройти в соседнюю по стороне, если возможно. Основная идея в том, что нам не надо хранить граф, так как мы можем рассмотреть все пути от каждой вершины их всего 4. P.s. по моему не удачно начал объяснение(