【发布时间】:2013-06-03 03:34:42
【问题描述】:
我有一个任务是解决旅行推销员问题。 我不会撒谎,我现在正在做的部分实际上我并不完全理解他们在问,如果我奇怪地表达这个问题,很抱歉。 我有点明白,但不完全。
我们正在计算推销员的大致距离。我们需要创建一个二维数组,我相信比特集?无论如何以二进制形式存储值。 0代表未访问过,1代表已访问过。
我们得到了一个非常有用的算法,如果这里有人可以帮助第一步,我应该能够完成它:
Create memoisation table [N][(1 << N)]
(其中 N = 城市数)。 我知道 1
我的主要问题是:
- 将 N 转换为二进制(我认为这是我需要做的?)
- 将集合向左移动一位
- 实际上是创建这些大小的二维数组...
我在这里可能是错的,事实上这很可能......任何帮助表示赞赏,谢谢!
【问题讨论】:
-
1<<N与 2 的 N 次方相同。例如1<<5是 32。
标签: c++ multidimensional-array memoization bitset bitmask