Скачайте проект route-planning.
Роботу нужно проехать через указанные точки, посетив каждую хотя бы один раз. Нужно спланировать маршрут так, чтобы суммарный путь был минимален.
В файле PathFinderTask допишите код функции int[] FindBestCheckpointsOrder(Point[] checkpoints)
.
Функция принимает массив чекпоинтов. Робот изначально находится в точке checkpoints[0]
. Вернуть нужно порядок посещения чекпоинтов. Например, если функция возвращает массив {0,2,1}, это означает, что робот сначала поедет в чекпоинт с индексом 2, а из него в чекпоинт с индексом 1 и на этом закончит свой путь.
Действуйте как на лекциях, можете адаптировать код с лекций. Функция должна быть рекурсивной.
Реализуйте следующую оптимизацию (отсечение перебора): прекращайте перебор, если текущая длина пути уже больше, чем минимальный путь, найденный ранее.
// Вставьте сюда финальное содержимое файла PathFinderTask.cs using System; using System.Collections.Generic; using System.Drawing; namespace RoutePlanning { public static class PathFinderTask {
Стоимость решения этой задачи всего 100 рублей, купи решения у меня 🙂