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
这一道题解决关键在两处:
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
相关文章推荐
- ACM UVa 116 - Undirectional TSP的解法
- UVa 116: Undirectional TSP
- uva 116 Unidirectional TSP
- uva 116 Unidirectional TSP (dp)
- uva116 - Unidirectional TSP(记忆化搜索)
- UVa 116 - Unidirectional TSP
- UVA 116 Unidirectional TSP(DP最短路字典序)
- UVA 116 Unidirectional TSP
- Unidirectional TSP UVA - 116
- UVA - 116 Unidirectional TSP
- uva 116 单向tsp
- UVa 116 - Unidirectional TSP
- UVA - 116 - Unidirectional TSP(动态规划)
- UVA 116(单向TSP)
- DP--UVA - 116 Unidirectional TSP
- UVa 116 - Unidirectional TSP
- UVa #116 Unidirectional TSP (例题9-4)
- uva 116 Unidirectional TSP(动态规划,多段图上的最短路)
- uva 116 Unidirectional TSP (dp)
- uva116 unidirectional TSP 单向TSP (DP)