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

【题目大意】 
带权有向图上的中国邮路问题:一名邮递员需要经过每条有向边至少一次,最后回到出发点,一条边多次经过权值要累加,问最小总权值是多少。(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),在原图中复制




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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值