#P30091. 最短Hamilton路径

最短Hamilton路径

Description

给定一张n个点的带权无向图,点从0∼n−1标号,求起点0到终点n−1的最短 Hamilton 路径。
Hamilton 路径的定义是从0到n−1不重不漏地经过每个点恰好一次。

Input Format

第一行输入整数$n$。
接下来$n$行每行$n$个整数,其中第$i$行第$j$个整数表示点$i$到$j$的距离(记为 $a[i,j$])。
对于任意的 x,y,z,数据保证$ a[x,x]=0,a[x,y]=a[y,x]$并且 $a[x,y]+a[y,z]≥a[x,z]$。

Output Format

输出一个整数,表示最短 Hamilton 路径的长度。
5
0 2 4 5 1
2 0 6 5 3
4 6 0 8 3
5 5 8 0 5
1 3 3 5 0
18

Hint

1≤n≤20
0≤$a[i,j]$≤$10^7$

Source

2.5动态规划 状态压缩DP