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 Comments


Serge Pisarsky
Serge Pisarsky
Nov 26, 2023

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

Like
Bezukh
Nov 29, 2023
Replying to

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

Like

Serge Pisarsky
Serge Pisarsky
Nov 26, 2023

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

Like

big-boss777
Jan 06, 2023

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

Like
Bezukh
Jan 09, 2023
Replying to

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

Like

cepex58984
Mar 27, 2022

😮Спасибо!🐱

Like
Bezukh
Mar 27, 2022
Replying to

Пожалуйста 😉

Like

© 2019-2024 by Bezukh Vladimir

bottom of page