摘要: 面向对象是个好东西,他可以使责任分立,于是我尝试着在ural1022里面使用了这个思想来实现拓扑排序,很幸运的一次AC。以节点为对象,他的责任有:1 操作自身划入另一个集合2 操作子节点入度减一3 通知入度为0的子节点执行上述两个操作面向对象的好处除了责任分立之外,还有数据的独立。节点对象存储了自身入度,出度,孩子节点等信息。不得不说在思路上比面向过程的要清晰,易书写也易维护。ural1017好多人说是DP,我却用递推把他解了出来。。说实话,DP和递推的界限不是很明显,我甚至觉得DP是用递推实现的记忆化搜索。网上的DP是O(n^2)的时间复杂度。递推是O(n^3)。递推式为:f[i,j] = 阅读全文
posted @ 2011-05-28 17:37 dk647 阅读(229) 评论(0) 推荐(0) 编辑