用拓扑排序+动态规划的方法输出DAG的所有可能的路径
2006-03-24 18:51
1131 查看
拓扑排序简单的说就是从某个集合上的一个偏序得到该集合上的一个全序的过程,具体的算法可以看看数据结
构的书;动态规划的基本思想是通过空间换取时间,在遍历过程中存储中间结果,从而减少不必要的计算,同
样也请大家去看看算法书上的讲解。
这里,我们操作的DAG是一个只有一个源点和一个汇点的拓扑图。我们在这里通过具体实例说明算法。
首先,删除节点0,更新节点0指向的目标节点的路径。
接下来,选择节点2删除,然后把更新节点2指向的目标节点的路径。
然后,选择节点3删除,同时更新节点3指向的目标节点的路径。
最后删除节点1,同时更新节点1指向的目标节点的路径。
由此,只需一次遍历就的到了从节点0到节点4的所有路径信息。
构的书;动态规划的基本思想是通过空间换取时间,在遍历过程中存储中间结果,从而减少不必要的计算,同
样也请大家去看看算法书上的讲解。
这里,我们操作的DAG是一个只有一个源点和一个汇点的拓扑图。我们在这里通过具体实例说明算法。
首先,删除节点0,更新节点0指向的目标节点的路径。
接下来,选择节点2删除,然后把更新节点2指向的目标节点的路径。
然后,选择节点3删除,同时更新节点3指向的目标节点的路径。
最后删除节点1,同时更新节点1指向的目标节点的路径。
由此,只需一次遍历就的到了从节点0到节点4的所有路径信息。
相关文章推荐
- 紫书p263 嵌套矩形如何输出所有路径(DAG上的动态规划)
- Java求解,输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m。要求将所有的可能组合列出来(背包动态规划问题求解)
- 动态规划矩形嵌套及DAG上的最短路径。
- MOOC清华《程序设计基础》第6章:橱窗插花问题(动态规划,输出方法二)
- 动态规划之所有点对的最短路径问题(Floyd算法)
- 动态规划—输出所有的最长公共子序列
- J - FatMouse's Speed HDU 1160 (动态规划,最长上升子序列+路径输出)
- 动态规划-数塔路径之和最大值及路径输出问题
- 第4章 基于PSO并融合海事规则的已知动态路径规划方法
- MOOC清华《程序设计基础》第6章:橱窗插花问题(动态规划,输出方法一)
- 将1~6这6个数字按每行3个进行输出,输出时要求左边的数字比右边的大,上边的数字比下边的大,求出所有可能的填写方法并统计输出排列方法有多少种。
- 动态规划,多重背包,保存路径,用完全背包的方法做多重背包(Charlie's Change,poj 1787)
- 嵌套矩形——DAG上的动态规划
- 动态规划_DAG模型
- 九度笔记之 1499:项目安排 的两种动态规划方法比较
- Java基础知识强化之IO流笔记14:递归之输出指定目录下所有java文件绝对路径的案例
- 给定入栈顺序,输出所有可能的出栈情况,并判断给定的序列是否为正确的输出序列
- log4j输出多个自定义日志文件,动态配置路径
- Python实现遍历windows所有窗口并输出窗口标题的方法
- 20110327-8.3-warning-如果程序崩溃了,则不会刷新缓冲区,最好的方法是保证所有的输出操作都显式地调用了flush或endl