Algorithm 回溯真的能解决15个难题吗?

Algorithm 回溯真的能解决15个难题吗?,algorithm,data-structures,dynamic-programming,backtracking,Algorithm,Data Structures,Dynamic Programming,Backtracking,最近我在读一本书,名叫《编程挑战》。它基本上是一本关于算法的书。本书的其中一章专门介绍回溯技术,在这一章的结尾,有来自UVA在线评委的问题示例。其中一个问题是著名的 尽管这一问题在回溯一章中有介绍,但我对回溯能否在给定的时间限制内解决这一问题表示严重怀疑 我的问题是:这里有没有人能够通过一个只包含回溯的解决方案接收到UVA在线法官接受?我的意思是,您收到了一个accept,而没有使用奇特的A*算法,也没有使用动态编程的记忆,或者需要一些巧妙递归的奇特解决方案。我是说回溯。有可能吗?我想我今天很幸

最近我在读一本书,名叫《编程挑战》。它基本上是一本关于算法的书。本书的其中一章专门介绍回溯技术,在这一章的结尾,有来自UVA在线评委的问题示例。其中一个问题是著名的

尽管这一问题在回溯一章中有介绍,但我对回溯能否在给定的时间限制内解决这一问题表示严重怀疑


我的问题是:这里有没有人能够通过一个只包含回溯的解决方案接收到UVA在线法官接受?我的意思是,您收到了一个accept,而没有使用奇特的A*算法,也没有使用动态编程的记忆,或者需要一些巧妙递归的奇特解决方案。我是说回溯。有可能吗?

我想我今天很幸运,我在youtube上找到了写这本书的人的一系列讲座。其中一节课是关于回溯部分的问题。他实际上表明这是一个回溯问题,只是需要一些巧妙的修剪。

这15个难题就像国际象棋或魔方一样,是一个NP难问题,需要搜索一棵可能性树。这种问题只能通过蛮力加修剪来解决,这就是回溯。我同意你的观点,很难在短时间内解决这个问题,因为你可能必须使用某种启发式方法,使它在合理的时间内解决。另外,你是对的,必须使用一些额外的逻辑,因为你必须记住以前访问过的位置,否则你可能会永远搜索,反复重复相同的立场。

我想,回溯是解决方案中相当重要的一部分……你提出的回溯问题是解决这个问题还是任何问题的可行方案?如果有人想跳过,相关的bit将在10:30开始。“这种问题只能通过暴力解决”维基百科关于A*的文章说A*也可以用来解决15个难题。A*是一种图形搜索算法,可以在树上使用,因为树是一种图形。A*不是适合15的算法,因为没有明显的工作成本函数。当在15上使用*时,没有有用的成本函数,这与回溯没有什么不同。