大佬们帮帮忙吧QAQ
#include<bits/stdc++.h>
#define R register
using namespace std;
int n,f[20];
double x[20],y[20],sum,ans;
bool v[20];
inline void find(int k){
if(k>n){
if(ans<0||sum<ans){
ans=sum;
}
return;
}
for(R int i=1;i<=n;i++){
if(!v[i]){
f[k]=i;
double dx,dy;
dx=x[f[k]]-x[f[k-1]];
dy=y[f[k]]-y[f[k-1]];
sum+=sqrt(dx*dx+dy*dy);
if(ans<0||sum<ans){
v[i]=1;
find(k+1);
v[i]=0;
}
sum-=sqrt(dx*dx+dy*dy);
}
}
}
int main(){
sum=0,ans=-1;
ios::sync_with_stdio(0);
cin>>n;
for(R int i=1;i<=n;i++){
cin>>x[i]>>y[i];
}
f[0]=0;
find(1);
printf("%.2lf",ans);
return 0;
}