Движение робота — динамическое программированиеC++

Программы на C++. Форум разработчиков
Ответить
Гость
 Движение робота — динамическое программирование

Сообщение Гость »


Имеется одномерный мир бесконечной длины (x), и доступные ходы (y), например [1, 2, 3, -1, -2, -3], и пункт назначения (d) (т.е. 15), напишите функцию, которая возвращает наименьшее количество ходов (результат), необходимое для достижения d.

Например, если d = 15, результат = 5. так как самый оптимальный ход - 3, а сделать его можно 5 раз.

Эта проблема очень похожа на эту: . за исключением того, что допускаются отрицательные значения.

У меня есть код ниже, который работает только для положительных чисел. Есть идеи, как заставить его работать со смешанными положительными и отрицательными значениями?
класс Решение { публика: int Robotmotion(vector &moves, int &d) { если (d == 0) вернуть 0; если (d < 0) { д = -д; for (auto &move: перемещение) move *= -1; } sort(moves.begin(), moving.end()); вектор dp(d + 1, d + 1); дп[0] = 0; for (int я = 1; я
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»