代码:
#include<bits/stdc++.h>
using namespace std;
double xx[110],yy[110];
int h[110];
int n;
int coun;
double ans=INT_MAX;
double sq(int x1,int y1,int x2,int y2){
return sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)));
}
void dfs(int dep,int x,int y,double s){
if(s>=ans)return ;
if(coun>=1e7*3)return ;
if (dep==n){
ans=s;
return;
}
for(int i=1;i<=n;i++){
if (h[i]==0){
h[i]=1;
dfs(dep+1,xx[i],yy[i],s+sq(x,y,xx[i],yy[i]));
h[i]=0;
if(coun>=1e7*3)return ;
coun++;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>xx[i]>>yy[i];
}
dfs(0,0,0,0);
cout<<fixed<<setprecision(2)<<ans;
return 0;
}
交上去后第三个点wa了
下了数据自测是对的
输入:
输出:
程序: