rt,这是代码
#include<bits/stdc++.h>
using namespace std;
const int maxn = 25,inf = 1e9;
int n;
int g[25][25];
int dp[25][(1<<20)+5];
int dfs(int p,int vis){
if(dp[p][vis])return dp[p][vis];
if(vis==(1<<(n-1))-1)return 0;
int res = inf;
for(int i = 0;i<n;i++)if(~vis&(1<<i)){
res = min(res,dfs(i,vis|(1<<i))+g[p][i]);
}
return dp[p][vis] = res;
}
int main(){
cin>>n;
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
cin>>g[i][j];
g[j][i] = g[i][j];
}
}
cout<<dfs(0,0);
}