问题标签 [hamiltonian-path]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 这段代码使用回溯查找方形网格的路径是否正确?
我正在阅读 antti Lakesonen 的竞争性编程手册,我遇到了回溯以查找应用了一些优化的网格路径。简而言之,这里是跨网格的有效路径的规则:
现在我已经编写了这段代码,它可以很好地dimension = 7
与 time~400ms
和 total的方形网格一起使用paths : 111712
。我在这里有两个疑问:
-->dimension = 9
即使是搜索中的第一个有效路径也需要花费大量时间来报告。我是陷入无限循环还是什么?
--> 网格路径搜索even number of dimension
喜欢 2,4,6 都给answer 0
。我尝试手动查找 2*2 和 4*4 网格的路径,但我发现不可能找到这样的路径,但我不知道如何正式或逻辑地证明即使尺寸方形网格也不能具有上述路径。
这是我的代码:
只需评论ARRAY_BASED_CONSTANT_GRID
以启用网格尺寸的用户输入。
有人可以帮我弄这个吗?提前致谢 :)
PS:由于我的编码习惯,我不得不粘贴整个代码以使其合理。我知道在stackoverflow中只需要粘贴最少的代码,但在这里我不知道为了分析代码真正需要什么!
algorithm - 为什么第二个DP版本不起作用
我试图解决一个算法问题,该问题涉及计算给定数组中平方数组排列的数量。当且仅当每对相邻元素的总和是完全平方时,数组才是平方的。
我尝试使用位掩码 DP 来解决这个问题。其中表示以二进制格式表示的以状态dp[i][j]
结尾的方形数组的数量(例如,1001111,其中 1 是已访问的节点,而 0 不是)。下面是两个版本的代码:j
i
我感到困惑的是:当我尝试运行代码时,第一个版本给出了正确的结果,而第二个版本没有。我认为dp[s][j] += dp[(s & ~(1 << j))][p]
意味着s
结束状态j
s
没有j
那个状态的所有结果的总和是否以p
ifp
和j
are connected 结尾?