ACM UVa 116 - Undirectional TSP的解法

ACM UVa 116 - Undirection TSP

这一道题解决关键在两处:

1. 得到最小路径

定义每一个位置(x,y)的最小路径权值为p(x,y),于是有

p(x,y) = min { p(x-1, y) + p(x, (y + t + n) % n) | t = -1, 0, 1 }

按照动态规划的方法,从左往右或者从右往左以列为单位开始算即可。从左往右的话,最后一列的最小的p(x,y)就是结果。从右往左,那么第一列的最小的p(x,y)即为所求。

2. 得到最小路径并且每一步经过的行号按照字典顺序最小(lexicographically smallest)

要求是每一步经过的行号最小,并且从左到右的行号按照字典顺序是最小的。如果左往右计算的话,最后求得的不是字典顺序,虽然每一步都是行号最小的,但是大小顺序是从右往左,而不是从左往右,不符合字典顺序的要求。因此,必须是从右往左计算,第一列中最小的p(x,y)(相同的话那么行号必须是最小的)才是要求的答案。 

 

作者 :      ATField
E-Mail:   atfield_zhang@hotmail.com
Blog:     
http://blog.csdn.net/atfield
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值