描述
其中 S 为未访问的城市集合,v为当前所在城市,d[v][u]为由 v 城市到 u 城市之间的距离。利用二进制01来保存访问的状态。第一个返回条件很好理解,就是记忆搜索。对于第二个和第三个需要好好理解一下。 dp[11111][4]
的值为无穷大,它不会经过循环,而是直接赋值。不用担心第一次的分支 dp[00001][0]
没有出口,这个值肯定不是最小的,很可能是无穷大。
notes:
1<<n
代表1左移 n 位
1 | int rec(int S, int v) { |
1 | //利用这一条语句进行调用,即最终结果 |