Моему 8-летнему надоело создавать обычные лабиринты, и он занялся созданием вариантов, которые выглядят так:
Идея состоит в том, чтобы начать с x и достичь o по обычным правилам. Кроме того, вы можете переходить с любого целого числа на любое другое целое число , но вы должны заплатить долларов за привилегию. Цель состоит в том, чтобы решить лабиринт за наименьшую стоимость. В приведенном выше примере мы можем перейти от x к o через x-14-18-27-28-o по цене 5, но дешевле перейти к x-13-11-9-8-29-28-o только 4.
Итак, вот мой вопрос: какое наилучшее решение (с точки зрения асимптотического времени выполнения) вы можете придумать для решения этой проблемы? Вы можете сделать любые разумные предположения о формате ввода.
Примечание. Я использую тег «головоломки», потому что у меня есть ответ , но я не уверен, что он оптимален, и хотел бы посмотреть, сможет ли кто-нибудь еще улучшить мое решение. (Здесь - число целых чисел в лабиринте.)