c++ - 无向图中的最长循环

标签 c++ algorithm graph cycle

我如何在无向图中获得最长的循环(没有回溯,它需要很长时间)。

例子:

0 3 0 1 0
3 0 0 1 0
0 0 0 0 0
1 1 0 0 0
0 0 0 0 0

求解:3 + 3 + 1 => 输出:1 - 2 - 3 - 1。

最佳答案

如果你能找到最长的环,你就可以检测到图是否有哈密顿环,这是一个 NP 完全问题,从而使你的问题成为 NP-hard。

这意味着除非 P=NP,否则没有任何解决方案从根本上优于回溯。

关于c++ - 无向图中的最长循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35650783/

相关文章:

c++ - 如何使用循环从另一个字符串创建一个没有空格的新字符串

c++ - glibc 上的 valgrind 输出在 C++ 中检测到错误

javascript - Javascript 中等效的 C/C++ 数据结构是什么?

algorithm - 哈希问题的 Perl 哈希

c++ - 我如何从类名中获取 QMetaObject?

algorithm - 处理海量数据的库/数据结构

python - 如何删除二叉搜索树的所有节点

python - 求解 Dijkstra 算法 - 通过两条边传递成本/双亲

JavaScript 绘图工具

java - 从 PL/SQL 中的数据创建 "on the fly"图形图像