O興~
 
« 上一篇: 红黑树(附代码) 下一篇: 一个高中数学问题 »
我很懒的 @ 2006-02-16 22:43

如果要你求一个网络中只有一条路径的最大流,应该用什么算法。(原题:http://online-judge.uva.es/p/v5/544.html

首先,我们通常用的最大流算法Ford-Fulkerson算法是不能用了。

然而,我们可以用最短路径的算法,Dijkstra或Floyd-Warshall加以修改,来解决这个问题。因为这个问题实际就是要找出一条容量最大的路径。

但是我们同时也知道另一件事,很多人初学的时候都会通过把Dijkstra和Floyd-Warshall里的小于号改成大于号来求最长路径。结果显然是错误的,因为这样的算法算出的最长路径中会有重复的边。为什么,很简单,Dijkstra和Floyd-Warshall里都无法限制重复边的出现,但是在最短路径中,如果一条路径有重复的边,那它肯定不会是最短路径,所以重复边被问题本身的性质剃除了。但是如果用来求最长路径,那么越有重复的边,路径就越长,就越满足要求,则最终的结果就会错误了。

所以如果要看一个问题能不能用Dijkstra和Floyd-Warshall来解决,只要看有重复边的路径是否会比没有重复边有路径更符合问题的要求。比如求容量最大的路径时,重复的边不可能使容量变大,因为容量取决于路径中容量最小的一条边。

还有一个同类的问题:用2种颜色可不可能给一张地图着色,使每两个相邻的国家颜色都不同。解法是看一个无向图中存不存在边数为奇数的圈。同样,在这个问题里,有重复边有路径不可能改变原有的解,所以可以用Dijkstra或Floyd-Warshall来解。




最新评论

2006-02-22 16:43 网址: http://tata.ycool.com/

我晕过去了

不要紧的。

评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定

日历
网志分类
· 所有网志
· program
· 未分类
站内搜索
友情链接
· 歪酷博客
· 管理我的Blog
· jamie
· feemi
· lyrist
· tata
· allen
· richard

订阅 RSS

0081342

歪酷博客