想请教一下这个代码哪里有问题,丢进去20分,,谢谢quq...
#include<bits/stdc++.h>
using namespace std;
const int maxn=300;
int n;
double dis[20][20];
double x[maxn],y[maxn];
int vis[maxn];
double mindis,fdis=1e9;
void dfs(int u){
if(mindis>=fdis) return;
if(u==n){
fdis=mindis;
return;
}
for(int i=1;i<=n;i++){
if(vis[i]==0){
vis[i]=1;
mindis+=dis[u][i];
dfs(i);
vis[i]=0;
mindis-=dis[u][i];
}
}
return;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>x[i]>>y[i];
for(int i=0;i<=n;i++)
for(int j=0;j<=n;j++){
dis[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
}
dfs(0);
printf("%.2lf",fdis);
return 0;
}