村庄 iii 到村庄 jjj 的距离不一定等于村庄 jjj 到村庄 iii 的距离!
所以如果你状压 DP 求完了所有到某个点的路程要加上回来的路程,务必保证你写的是:
ans = min(ans, f[(1 << n) - 1][i] + w[i][0]);
而不是
ans = min(ans, f[(1 << n) - 1][i] + w[0][i]);