Самый короткий путь между двумя целыми числами путем добавления или вычитания

Вот описание этой проблемы:

Вам даны два целых числа A и B. Вы хотите найти кратчайшую последовательность операций, необходимых для преобразования A в B, где на каждом шаге вам разрешено добавлять или вычитать 5, 7 или 12.

, например, если вам дают A = -5 и B = 19, кратчайший путь - это

-5 + 12 + 12 = 19

, если вам было дано 1 и 3, кратчайший путь будет

1 + 7 - 5 = 2

единственным способом, которым я могу думать о решении этого, используя BFS и, возможно, еще несколько обрезки. Есть ли лучший алгоритм, который я мог вместо этого использовать?

Спасибо!

17
задан Ivan 16 February 2012 в 03:16
поделиться