求助
查看原帖
求助
1362599
Great_White_Shark楼主2024/5/22 18:50

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);
}
2024/5/22 18:50
加载中...