我的任务是有效地处理带有节点Q
的生成树图中的查询。N
每个查询都引用我需要处理的一条边,并且我应该输出图中删除该边后剩余的两个组件中的每一个的大小。
我目前的想法是从由该边缘连接的两个节点启动一个 DFS,确保 DFS 永远不会遍历边缘本身。这样,我将能够及时找到两个组件的大小,O(N)
总复杂度为O(Q * N)
.
但是,我认为我可以做一些预处理来进一步降低我的解决方案的时间复杂度,但我就是想不出那可能是什么。有人可以指出我正确的方向吗?
我的任务是有效地处理带有节点Q
的生成树图中的查询。N
每个查询都引用我需要处理的一条边,并且我应该输出图中删除该边后剩余的两个组件中的每一个的大小。
我目前的想法是从由该边缘连接的两个节点启动一个 DFS,确保 DFS 永远不会遍历边缘本身。这样,我将能够及时找到两个组件的大小,O(N)
总复杂度为O(Q * N)
.
但是,我认为我可以做一些预处理来进一步降低我的解决方案的时间复杂度,但我就是想不出那可能是什么。有人可以指出我正确的方向吗?