两个星期的“图论”练习结束了,原来自己只会一个Dijstra()算法,现在又学到了bellman()、Floyd()、最小生成树prime()算法以及拓扑排序topqsort()、最小路最大流(其实我都看不懂)算法。
一开始的时候,因为是英文题,理解题目有些难度,花费了一定量的时间。其实,有些题只要能够完全理解透题意,那么在写程序的时候需要注意的地方基本上就清楚了。所以,读透题是关键,有时候虽然精通算法,但是马马虎虎读题,照样不能AC,我曾经经历过这样的事情,因此对这个教训记忆也比较深刻。
上述几个算法,各自有自己的用途:Dijstra()主要用于求单源最短路径;bellman()用于处理环和负权路;Floyd()在处理无源路(也就是不知道从哪一点开始)比较方便,另外,这个算法用源代码实现时很简便,但是有点耗时;最简单、最容易理解的应该是最小生成树prime()算法,因为它跟Dijstra()比较像,而且一般题目浅显易懂;但是拓扑排序和最小路最大流算法比较难,特别是后者,实在看不懂。我曾经花了整整一个晚上的时间来研究这类问题,不幸的是,依然看不懂代码。规定的题目没做完,任务没有完成,多少有点遗憾,但尽力就好。