题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=4568
题目大意:
给一个矩阵 n*m (n m<=200),方格里如果是0~9表示通过它时要花费的代价,-1表示不能通过它。
矩阵中有k(k<=13)个珠宝,问从任意外边框出发取走所有珠宝并求走出矩阵的最小的代价。
解题思路:
先dij预处理每一个珠宝到其他其他珠宝的最小花费,不包括自己的花费。然后就是裸的TSP问题了,状态压缩dp即可。
dp[i][j]表示最后到达第i个珠宝,且访问珠宝的状态为j时,最小的花费。
dd[i][j]表示珠宝i到珠宝j之间的花费,注意此时包括j的花费不包括i的花费。
对于已求出的每一种珠宝状态更