top of page

CodinGame | Алгоритм Дейкстры: реализация и пример использования | C++

  • Bezukh
  • 22 июн. 2019 г.
  • 1 мин. чтения

Обновлено: 29 сент. 2024 г.

Приветствую! Большинство программистов сталкиваются с проблемой поиска кратчайшего пути. Конечно, #pathfinding алгоритмов довольно много. В этой заметке я приведу реализацию и пример применения классического алгоритма Дейкстры для графа с неотрицательными весами. На сайте CodinGame довольно много интересных соревнований для программистов. В одном из таких (A Code of Ice & Fire) необходимо написать бота, который сможет грамотно контролировать территорию, ресурсы и юниты.


Я не буду вдаваться в подробности: работа бота, игровая экономика и другие аспекты останутся за кадром.

Алгоритм Дейкстры пригодился для поиска кратчайшего пути между двумя клетками территории. Идея заключалась в том, что вершинами графа выступили клетки территории, а весами на рёбрах между ними — цены найма подходящих юнитов. Это позволило постоянно отслеживать кратчайший путь до вражеской крепости. При наличии нужного количества денег, от ближайшей клетки до базы оппонента сразу же создавалась победоносная цепочка из юнитов.

Основная проблема: нужно как-то преобразовать исходные данные в матрицу смежности. Но это уже кто во что горазд! Алгоритм Дейкстры на С++:

Консоль:


Послесловие:

Порешать задачи по программированию можно на CodinGame. -- © Bezukh Vladimir, 2019

Недавние посты

Смотреть все
CodinGame | Расстояние Чебышёва, Lumen | C++

Приветствую! В этой небольшой заметке расскажу о расстоянии Чебышёва. Рассмотрим применение формулы для нахождения этого расстояния в...

 
 
 

7 комментариев


Serge Pisarsky
Serge Pisarsky
26 нояб. 2023 г.

не хватает #include <string>

Лайк
Bezukh
29 нояб. 2023 г.
Ответ пользователю

Некоторые реализации <iostream> косвенно включают <string>. Тем не менее, на это не следует полагаться. Добавил header <string>

Лайк

Serge Pisarsky
Serge Pisarsky
26 нояб. 2023 г.

Класс, как говорится лучше один раз увидеть...

Лайк

big-boss777
06 янв. 2023 г.

Спасибо за реализацию.Скажите, пожалуйста, есть ли у Вас реализация алгоритма Прима (Знаходження дерева мінімальної довжини використовуючи алгоритм Прима (mathros.net.ua)) .Очень интересна эта тема.

Лайк
Bezukh
09 янв. 2023 г.
Ответ пользователю

Пожалуйста 😀 По поводу алгоритма Прима рекомендую посмотреть здесь: https://e-maxx.ru/algo/mst_prim

Лайк

cepex58984
27 мар. 2022 г.

😮Спасибо!🐱

Лайк
Bezukh
27 мар. 2022 г.
Ответ пользователю

Пожалуйста 😉

Лайк

© 2019-2025 by Bezukh Vladimir

bottom of page