[英]Graph theory puzzle about connectivity?
您有一个包含n 个节点(编号为 1-n)和m 条边的图。 您一个一个地删除所有节点,并在每一步检查图形是否完全连接(通过打印“连接”与否)。 给出了要删除的节点的顺序。
例如,
n = 4 and m = 3 给出的边为:1 - 2, 2 - 3, 3 - 4. 去除顺序为:3, 4, 1, 2
节点编号为 1-n,因此本例中的节点为 1、2、3、4。
最初,图形是连接的,因此您打印出:
连接的
您首先删除节点 3。现在图形断开连接,因为节点 4 是单独的。
断开连接
然后删除节点 4。现在该图仅由连接的节点 1 和 2 组成。
连接的
然后删除节点 1。该图仍被认为是连通的; 只有一个节点。
连接的
然后删除节点 2。什么都没有留下。
示例代码会有所帮助,最好是 java 或 c++。 我尝试使用 BFS 和 DFS,但它们太慢了。 执行此操作的最有效方法是什么?
尝试以相反的顺序工作。
一条一条地添加边并使用不相交的集合数据结构来查找集合何时连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.