我正在尝试使用更有效的解决方案来解决问题,我无法考虑任何可行的方法而不是琐碎的解决方案,也无法在任何其他来源中找到相同版本的此问题我遇到了,所以我很想得到一些帮助。
假设:
1.A有向图G,其中每个边都有一个权重(权重可以是负数,G可以包含负数周期)。
2.每个顶点的d [v]字段。
3.A源顶点。
如果d [v]是从s到v的G中最短路径的长度,我如何验证G中的每个顶点?
当然我可以使用Bellman-Ford算法并将每个d [v]与Bellman-Ford为v ...提供的距离进行比较,但这非常天真且效率不高。
我可以做得更好吗?
提前致谢!
答案 0 :(得分:1)
您可以使用以下伪代码验证所有d [v]是否正确,该代码在O(E)中运行,其中E是边数。
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<ListView
android:id="@+id/household_member_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</HorizontalScrollView>
w(n,v)是节点n和v之间的权重。
但是,如果您使用此方法在d [v]中发现错误,则无法推断哪些错误。在这种情况下,正如评论中已经提到的那样,您必须预先形成Bellman-Ford。