计算无向图中有约束的所有一对顶点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算无向图中有约束的所有一对顶点相关的知识,希望对你有一定的参考价值。
我正在努力解决以下算法难题:
给定具有N个顶点和N个边的图形,我必须对具有以下属性的所有顶点对(A,B)进行计数:A> B,并且存在至少一条由所有顶点标记为A和B之间的数字的路径...
例如,如果存在以下路径,则(1,5)是有效的一对顶点:(1,2,3,4,5)但即使存在以下路径(1、5、2、3也可以) ,4)或(1,3,4,3,2,3,5)...我对路径的长度或其顺序不感兴趣,它只需要包含标签> = A且<=B。我尝试使用改进的bfs和dfs,但没有成功。
可以帮忙吗?
提供一些提示?
感谢
删除连接两个不连续数字的节点的所有边。 (例如,将节点2与节点6连接的边缘,而不是从节点2到节点3的边缘)。在修改后的图中,每个节点的度数为0、1或2。
现在遍历从节点1开始的图形。将所有访问的节点存储在列表中。如果到达度数为1的节点,请从节点2重新开始(然后再从节点3开始,依此类推)。
考虑具有7个节点和边E = {{{1,2},{2,3},{3,4},{4,5},{6,7}}的图的以下示例输出。请注意,1..5表示具有以下元素{1},{2},{3},{4},{5}的列表。
节点|列表|有效对
1 | 1..5 | 4 {(1,5),(1,4),(1,3),(1,2)}
2 | 2..5 | 3 {(2,5),{2,4),(2,3)}
3 | 3..5 | 2
4 | 4..5 | 1
5 | 5..5 | 0
6 | 6..7 | 1
7 | 7..7 | 0
这应该回答您的问题。抱歉,表格格式不正确。如表中所示,一旦节点1具有所有对,就可以计算节点2、3、4和5的有效对。因此,有一些空间可以改进我的算法。
以上是关于计算无向图中有约束的所有一对顶点的主要内容,如果未能解决你的问题,请参考以下文章