Algorithm 如何从拓扑排序的节点恢复DAG?

Algorithm 如何从拓扑排序的节点恢复DAG?,algorithm,graph,graph-algorithm,Algorithm,Graph,Graph Algorithm,我有一个节点列表,它们是某种DAG的拓扑类型。我希望使用以下属性还原DAG(不必是原始DAG): 它可能有多个组件。 如果A和B之间有中间节点,那么A和B之间就不可能有直接边。 此外,还有一个函数fNode1,Node2,其时间复杂度恒定,返回: -1如果可以从节点1到达节点2。 如果节点1和节点2没有公共根节点,则为0。 1如果可以从节点2到达节点1。 因此,如果f返回非零值,那么节点应该以某种方式连接 答案是提出时间复杂度最低的算法,将被接受 另外,我可能会更新DAG属性以排除一些琐碎的情况

我有一个节点列表,它们是某种DAG的拓扑类型。我希望使用以下属性还原DAG(不必是原始DAG):

它可能有多个组件。 如果A和B之间有中间节点,那么A和B之间就不可能有直接边。 此外,还有一个函数fNode1,Node2,其时间复杂度恒定,返回:

-1如果可以从节点1到达节点2。 如果节点1和节点2没有公共根节点,则为0。 1如果可以从节点2到达节点1。 因此,如果f返回非零值,那么节点应该以某种方式连接

答案是提出时间复杂度最低的算法,将被接受


另外,我可能会更新DAG属性以排除一些琐碎的情况。

您尝试了什么?它在哪里失败了?还不够快吗?嗨。这似乎不适用于堆栈溢出,因为它与编程问题的特定实例无关。也许你应该试着在一个堆栈交换上问这个问题?@GoBusto我不同意,这是一个完美的主题,作为一个算法问题搜索算法标签,有很多这样的问题-但是我担心的是,由于OP@amit当我完成后,我想添加我的研究作为答案。我现在正在做。这够公平吗,还是我应该把我的研究添加到这个问题上?@abyss.7回答你自己的问题很好——但你仍然应该提供一些研究方面的见解。^2上的天真解决方案就可以了