图中源和目标之间权重的最小位OR

时间:2017-03-07 15:49:09

标签: algorithm graph-theory

给定具有n个顶点和m个边的加权和非定向图,其中 1 <= n <= 1000 1 <= m <= 10000 。在具有不同权重的图的两个节点之间可以有多个边。

给定源和目的地,如何找到源和目的地之间的最小距离?此处,距离定义为路径中涉及的边的权重的按位OR

2 个答案:

答案 0 :(得分:1)

提示1

尝试依次计算最小距离的位。

提示2

如果有一个x位清晰的路径,你能解决吗?

提示3

如果重量位x设置,请尝试从图表中删除边缘。

提示4

尝试查看是否存在位31设置为0的路径。

如果不是,请查看是否存在将位30设置为0的路径。

如果有,请尝试查看是否存在位31和位30设置为0的路径等。

答案 1 :(得分:0)

虽然它可能不是最有效的算法,但我会在图表上实现最佳优先搜索。创建一个优先级队列,该队列将包含接下来要探索的顶点,仅包含最初的源,优先级为0。
然后开始一个从列表中获取最低优先级元素的循环,探索它的所有邻居,并将它们添加到队列中,当它找到目标顶点或队列为空时停止。