2013编程之美全国挑战赛第二场-集会

简介:

昨天做编程之美的题感觉只有这一道是水题。思路没问题但是写程序写错了一个地方没AC。今天翻出来想了一下终于解决了。

解题思路:

要寻找的这个目标点的纵坐标为0,设横坐标为x。以示例数据为例,可以得到目标点到这些点的距离,更直观一点,绘制成图形点击查看。观察可知符合要求的点可能出现的位置是某两个抛物线的交点或者某个抛物线的顶点。求出这些点来比较计算出的距离,取最小的即可。没机会提交的代码如下:


import java.util.Scanner;  

public class Main {  
    public static void main(String[] args) {  
        Scanner in = new Scanner(System.in);  
        int T = in.nextInt();// T个测试  
        for (int t = 0; t < T; t++) {  
            int N = in.nextInt();  
            int x[] = new int[N];  
            int y[] = new int[N];  
            for (int i = 0; i < N; i++) {  
                x[i] = in.nextInt();  
                y[i] = in.nextInt();  
            }  
            double min = Double.MAX_VALUE;  
            double ret = 0;  
            for (int i = 0; i < N; i++) {  
                for (int j = i + 1; j < N; j++) {  
                    double d = 0.5  
                            * (sq(x[i]) - sq(x[j]) + sq(y[i]) - sq(y[j]))  
                            / (x[i] - x[j]);  
                    double res = calc(x, y, d);  
                    if (res < min) {  
                        min = res;  
                        ret = d;  
                    }  
                }  
            }  
            for (int i = 0; i < N; i++) {  
                double d = x[i];  
                double res = calc(x, y, d);  
                if (res < min) {  
                    min = res;  
                    ret = d;  
                }  
            }  
            System.out.println("Case #" + (t + 1) + ": " + ret);  
        }  
    }  

    public static int sq(int x) {  
        return x * x;  
    }  

    public static double sq(double x) {  
        return x * x;  
    }  

    public static double calc(int[] x, int[] y, double d) {  
        double max = 0.0;  
        for (int i = 0; i < x.length; i++) {  
            double temp = sq(x[i] - d) + sq(y[i]);  
            if (temp > max)  
                max = temp;  
        }  
        return max;  
    }  
}

目录
相关文章
|
3月前
|
数据采集 人工智能 算法
近五千支队伍决战AI之巅, AFAC2024金融智能创新大赛在2024 Inclusion · 外滩大会完美收官
自从2022年12月ChatGPT上线以来,全球掀起了一场你追我赶的AI竞赛,不少国家都在全力以赴,抢占制高点。
|
4月前
|
机器学习/深度学习 人工智能 Cloud Native
2024 天池云原生编程挑战赛决赛名单出炉,冠军来自中山大学、昆仑数智战队
2024 天池云原生编程挑战赛由阿里云主办,云原生应用平台、天池以及市场营销部联合承办,本届大赛成功吸引了超过 20500 支队伍积极参与,参赛者来自 10 多个国家和地区,大赛规模创下历史新高。
|
Cloud Native 中间件 Serverless
2023 云原生编程挑战赛收官:1.8 万人报名,冠军花落北京邮电大学、电子科技大学、旷识科技
2023 云原生编程挑战赛收官:1.8 万人报名,冠军花落北京邮电大学、电子科技大学、旷识科技
2023 云原生编程挑战赛收官:1.8 万人报名,冠军花落北京邮电大学、电子科技大学、旷识科技
|
算法
算法|华为精英挑战赛赛前预备
算法|华为精英挑战赛赛前预备
107 0
时隔4年再夺金奖!北大斩获「编程奥林匹克」亚军,刷新队史最高排名
时隔4年再夺金奖!北大斩获「编程奥林匹克」亚军,刷新队史最高排名
194 0
|
机器学习/深度学习 人工智能 达摩院
为亿级用户的美好出行而战!高德地图首届算法大赛落幕 95后北邮在读博士带队夺冠
高德地图号召全球的开发者利用人工智能技术探索动态路况难题,收到了国内外顶尖学府、科研机构以及一线知名技术企业等产学研各界技术爱好者的积极响应。
为亿级用户的美好出行而战!高德地图首届算法大赛落幕 95后北邮在读博士带队夺冠
|
编解码 调度
世界杯迄今最火的一场比赛 一文看懂世界杯背后的阿里云黑科技
世界杯“法阿之战”中帕瓦尔世界波以及姆巴佩梅开二度一定让你印象深刻,而梅西的饮恨离开也让不少球迷碎了心。但你知道,比赛当天的阿里云藏着什么秘密吗?
3153 0