【发布时间】:2014-11-07 11:26:29
【问题描述】:
令 G = (V, E) 是一个有向图,节点为 v_1, v_2,..., v_n。如果 G 具有以下性质,则称 G 是有序图。
- 每条边从索引较低的节点到索引较高的节点。也就是说,每条有向边都具有 (v_i, v_j) 的形式,其中 i
- 除 v_n 之外的每个节点都至少有一条边离开它。也就是说,对于每个节点 v_i,至少有一个形式为 (v_i, v_j) 的边。
给出一个有效的算法,它采用有序图 G 并返回从 v_1 开始到 v_n 结束的最长路径的长度。
如果你想看漂亮的乳胶版本:here
我的尝试:
动态编程。 Opt(i) = max {Opt(j)} + 1. 对于所有 j 这样的 j 可以从 i 到达。
是否有更好的方法来做到这一点?我认为即使有了记忆,我的算法仍然是指数级的。 (这只是我在网上找到的一个旧的中期评论)
【问题讨论】:
-
自您提出此问题之日起五年多之后,现在无关紧要,但您问题中的链接已损坏。此外,这个断开的链接不会影响您的问题或答案,所以没关系。只是为未来的读者指出。
标签: algorithm