荣耀8.30笔试 采蜜

题目描述

平原上,一群蜜蜂离开蜂巢采蜜,要连续采集5片花丛后归巢,已知5片花丛相对蜂巢的坐标,请你帮它们规划一下到访花儿的顺序,以使飞行总距离最短。

输入描述

以蜂巢为平面坐标原点的5片花丛A、B、C、D、E的坐标,坐标值为整数。

输出描述

从出发到返回蜂巢最短路径的长度取整值,取整办法为舍弃小数点后面的值。

示例

输入

200 0 200 10 200 50 200 30 200 25

输出

456
只通过测例,未实测,仅供参考
import java.util.Scanner;

public class ggg {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        double[][] num = new double[5][2];
        for (int i = 0; i < 5; i++) {
            num[i][0] = scan.nextInt();
            num[i][1] = scan.nextInt();
        }
        int[] num1 = new int[6];
        double ans = 0;
        ans=hhh(num,num1,0,0,5,0,1000000);
        System.out.println(ans);
    }
    static public double hhh(double[][] num,int[] num1,double x,double y,int t,double ttt,double m){
        double tt=ttt;
        num1[t]=1;
        for (int i = 0; i < 5; i++) {
            if(num1[i]==0){
                ttt=tt+Math.sqrt(Math.pow(num[i][0]-x,2)+Math.pow(num[i][1]-y,2));
                m=hhh(num,num1,num[i][0],num[i][1],i,ttt,m);
                num1[i]=0;
            }
        }
        int s=0;
        for (int i = 0; i < 5; i++) {
            if(num1[i]==1){
            s++;
            }
        }
        if(s==5){
            m=Math.min(tt+Math.sqrt(Math.pow(num[t][0],2)+Math.pow(num[t][1],2)),m);
        }
        return m;
    }
}


#荣耀笔试#
全部评论
你好,是北部招聘吗,通软吗,我发现跟我题目不一样
点赞 回复 分享
发布于 2022-08-31 00:36 广东
这个题是不是求五个点的全排列,然后求这些排列点的距离和的最小值?
点赞 回复 分享
发布于 2022-08-30 22:37 浙江

相关推荐

05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
吴offer选手:HR:我KPI到手了就行,合不合适关我什么事
点赞 评论 收藏
分享
评论
3
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务