老头求助各位大侠的救助
查看原帖
老头求助各位大侠的救助
981981
little_whitezzz楼主2024/1/5 23:30
import java.io.BufferedInputStream;
import java.util.Scanner;

class position{
    int x;
    int y;
    public position(int x,int y){
        this.x = x;
        this.y = y;
    }
}
public class P1433 {
    static int N = 20;
    static int n;
    static position[] cs = new position[N];
    static boolean[] st = new boolean[N];
    static double min = 0x3f3f3f3f;
    static void dfs(int lx,int ly,int k,double d){
        if(d > min)
            return;
        if(k == n){
            min = Math.min(min,d);
            return;
        }
        for(int i = 0;i < n;i ++){
            if(!st[i]){
                int nx = cs[i].x;
                int ny = cs[i].y;
                double distance = Math.sqrt(Math.pow(lx - nx,2) + Math.pow(ly - ny,2));
                st[i] = true;
                dfs(nx,ny,k + 1,d + distance);
                st[i] = false;
            }
        }
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(new BufferedInputStream(System.in));
        n = sc.nextInt();
        for(int i = 0;i < n;i ++){
           int x = sc.nextInt();
           int y = sc.nextInt();
           cs[i] = new position(x,y);
        }
        dfs(0,0,0,0);
        System.out.printf("%.2f",min);
    }
}
2024/1/5 23:30
加载中...