您的位置:首页 > 其它

ACM UVa 116 - Undirectional TSP的解法

2006-12-12 00:03 591 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: