吃奶酪和最短Hamilton路径
吃奶酪&最短 Hamilton 路径
以后者为例。
定义 \(f[i][S]\) 表示走了集合 \(S\) 的点,最后在 \(i\)。
考虑从 \(S\) 中去掉 \(i\),然后找到一个 \(j\),则 \(f[i][S]\leftarrow f[j][S\oplus 2^j]+a_{i,j}\)。
前者需要新加入一个 \((0,0)\),共 \(n+1\) 个点。
复杂度 \(O(n^22^n)\)。
以后者为例。
定义 \(f[i][S]\) 表示走了集合 \(S\) 的点,最后在 \(i\)。
考虑从 \(S\) 中去掉 \(i\),然后找到一个 \(j\),则 \(f[i][S]\leftarrow f[j][S\oplus 2^j]+a_{i,j}\)。
前者需要新加入一个 \((0,0)\),共 \(n+1\) 个点。
复杂度 \(O(n^22^n)\)。