小明目前在做一份毕业旅行的规划。
打算从北京出发,分别去若干个城市,然后再回到北京,每个城市之间均乘坐高铁,且每个城市只去一次。
由于经费有限,希望能够通过合理的路线安排尽可能的省些路上的花销。
给定一组城市和每对城市之间的火车票的价钱,找到每个城市只访问一次并返回起点的最小车费花销。
注意:北京为 11 号城市。
输入格式
城市个数 nn。
城市间的车票价钱 nn 行 nn 列的矩阵 m[n][n]m[n][n]。
输出格式
输出一个整数,表示最小车费花销。
数据范围
1
输入样例:
4 0 2 6 5 2 0 4 4 6 4 0 2 5 4 2 0
输出样例:
13
说明
共 44 个城市,城市 11 和城市 11 的车费为 00,城市 11 和城市 22 之间的车费为 22,城市 11 和城市 33 之间的车费为 66,城市 11 和城市 44 之间的车费为 55,以此类推。
假设任意两个城市之间均有单程票可买,且价格均在 10001000 元以内,无需考虑极端情况。
#includeusing namespace std; const int N = 20; int g[N][N];//输入的矩阵 int dp[1< >n; for(int i=0;i >g[i][j]; memset(dp,0x3f,sizeof dp); dp[0][0]=0; for(int i=0;i<(1< >j)&1) for(int k=0;k



