我用的是dfs 然而我的dfs真的没学会
结果只有20分qwq
一脸委屈.JPG
下面贴下代码
#include<bits/stdc++.h>
using namespace std;
int n;
double ans=99999999,x[17],y[17];
bool v[17][17];
void dfs(int cnt,double sum,int ge){
if(ge==n){
if(sum<ans) ans=sum;
return;
}
int s=sum;
for(int i=1;i<=n;i++){
if(!v[i][i]){
sum=s+sqrt((x[cnt]-x[i])*(x[cnt]-x[i])+(y[cnt]-y[i])*(y[cnt]-y[i]));
v[i][i]=1;
dfs(i,sum,++ge);
ge--;
v[i][i]=0;
}
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%lf %lf",&x[i],&y[i]);
if(n==1){
ans=sqrt(x[1]*x[1]+y[1]*y[1]);
printf("%.2lf",ans);
return 0;
}
dfs(0,0,0);
printf("%.2lf",ans);
return 0;
}
求求大佬们救救孩子吧!!