HOJ 2739 The Chinese Postman Problem 带权有向图上的中国邮路问题

来源:互联网 发布:hbuilder手机版软件 编辑:程序博客网 时间:2024/05/23 10:33

【题目大意】 
带权有向图上的中国邮路问题:一名邮递员需要经过每条有向边至少一次,最后回到出发点,一条边多次经过权值要累加,问最小总权值是多少。(2 <= N <= 100, 1 <= M <= 2000)  
【建模方法】 
若原图的基图不连通,或者存在某个点的入度或出度为0则无解。统计所有点的入度出度之差Di,对于Di > 0的点,加边(s, i, Di, 0);对于Di < 0的点,加边(i, t, -Di, 0);对原图中的每条边(i, j),在网络中加边(i, j, ∞, Dij),其中Dij为边(i, j)的权值。求一次最小费用流,费用加上原图所有边权和即为结果。 
若进一步要求输出最小权值回路,则对所有流量fij > 0的边(i, j),在原图中复制




发散思维
如何求带权无向图上的中国邮路问题? 
若原图不连通则无解。若所有点的度均为偶数,则存在欧拉回路,所有边权加和即为结果。否则必有偶数个奇度点,将这些奇点拉出来构建新图,任意两点之间的边权为原图中两点之间的最短距离,对新图求一次一般图的最小权完美匹配,加上原图所有边权和即为最终结果。 若进一步要求输出最小权值回路,则将每条匹配边在原图中对应的最短路上的每条边都额外增加一条,这样原图便成为欧拉图,求一次欧拉回路即可。

阅读全文
0 0
原创粉丝点击