UnAccepted 40分
1个WA了,4个点AC,其余TLE
求助.
代码:
#include <bits/stdc++.h>
using namespace std;
int n;
int a[29],b[29],v[29];
double ans=1e9;
double f(int x1,int y1,int x2,int y2){
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))*1.00;
}
void dfs(int x,int y,double step,int k){
if(k==n){
ans=min(ans,step);
return;
}
for(int i=0;i<n;i++){
int h=a[i],l=b[i];
if(v[i]==0){
v[i]=1;
dfs(h,l,step+f(x,y,h,l)*1.00,k+1);
v[i]=0;
}
}
}
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d%d",&a[i],&b[i]);
dfs(0,0,0.00,0);
printf("%.2lf",ans);
}