Algorithm &引用;“吊带叶片转轮”:寻找重叠电影标题链的有效算法?

Algorithm &引用;“吊带叶片转轮”:寻找重叠电影标题链的有效算法?,algorithm,puzzle,Algorithm,Puzzle,这个问题来自于,因为这个谜题已经退役了,我想可以讨论了 你能找到一系列重叠的电影片名,比如《活着,让死去的诗人再活一天》有多长 我想知道解决这类难题的最佳方法/算法是什么。这是一个图形问题 首先构建一个图,其中每个顶点代表一部电影。如果电影a以与电影b开头相同的词结尾,则有一个边(a,b) 现在,您需要在图中找到最长的路径。这是NP完全问题,所以它没有多项式解。()虽然这将是一个有向图,如果它是无环的,那么它可以在多项式时间内求解。是的,但它不是无环的,很明显,尽管在这个特殊情况下,如果它包含一

这个问题来自于,因为这个谜题已经退役了,我想可以讨论了

你能找到一系列重叠的电影片名,比如《活着,让死去的诗人再活一天》有多长


我想知道解决这类难题的最佳方法/算法是什么。

这是一个图形问题

首先构建一个图,其中每个顶点代表一部电影。如果电影a以与电影b开头相同的词结尾,则有一个边(a,b)


现在,您需要在图中找到最长的路径。这是NP完全问题,所以它没有多项式解。()

虽然这将是一个有向图,如果它是无环的,那么它可以在多项式时间内求解。是的,但它不是无环的,很明显,尽管在这个特殊情况下,如果它包含一个圈,那么最长的链是无限的,所以程序可以在保持多项式时间的情况下,在搜索最长路径之前使用Bellman Ford检查循环。同样正确,但我假设你不允许使用同一部电影两次……啊,我明白你的意思了。这就更有意义了哈哈,原来的问题有很多微妙之处,这里没有提到:“多个单词重叠,就像《杀死一只知更鸟的许可证》中的一样,“是允许的。同一标题在解决方案中不得使用多次。启发式解决方案可能并不总是产生最多数量的标题将被接受:寻求效率和最佳性的合理权衡。”