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月前
|
机器学习/深度学习 人工智能 Cloud Native
2024 天池云原生编程挑战赛决赛名单出炉,冠军来自中山大学、昆仑数智战队
2024 天池云原生编程挑战赛由阿里云主办,云原生应用平台、天池以及市场营销部联合承办,本届大赛成功吸引了超过 20500 支队伍积极参与,参赛者来自 10 多个国家和地区,大赛规模创下历史新高。
|
4月前
|
数据采集 存储 机器学习/深度学习
【Mathorcup杯大数据挑战赛复赛 A题 二手车估价】复赛思路及Python实现
Mathorcup杯大数据挑战赛复赛A题“二手车估价”问题的解题思路和Python实现,包括数据预处理、特征工程、模型训练和预测结果的存储,主要使用了LightGBM模型进行交易周期的预测。
57 4
|
4月前
|
机器学习/深度学习 数据采集 算法
【 2021 MathorCup杯大数据挑战赛 A题 二手车估价】初赛复赛总结、方案代码及论文
总结了2021 MathorCup杯大数据挑战赛A题“二手车估价”的初赛和复赛经验,包括题目要求、解题思路、所用方法和结果,提供了详细的数据分析、模型构建、论文撰写和工具使用技巧,并展示了初赛和复赛的论文。
77 2
|
Cloud Native 中间件 Serverless
2023 云原生编程挑战赛收官:1.8 万人报名,冠军花落北京邮电大学、电子科技大学、旷识科技
2023 云原生编程挑战赛收官:1.8 万人报名,冠军花落北京邮电大学、电子科技大学、旷识科技
2023 云原生编程挑战赛收官:1.8 万人报名,冠军花落北京邮电大学、电子科技大学、旷识科技
|
算法
算法|华为精英挑战赛赛前预备
算法|华为精英挑战赛赛前预备
107 0
时隔4年再夺金奖!北大斩获「编程奥林匹克」亚军,刷新队史最高排名
时隔4年再夺金奖!北大斩获「编程奥林匹克」亚军,刷新队史最高排名
184 0
|
算法
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
162 0
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
揭秘CCF国际AIOps挑战赛选手背后的“武林神器”
CCF国际AIOps挑战赛揭秘选手背后的“武林神器”
1042 0
揭秘CCF国际AIOps挑战赛选手背后的“武林神器”
|
机器学习/深度学习 人工智能 达摩院
为亿级用户的美好出行而战!高德地图首届算法大赛落幕 95后北邮在读博士带队夺冠
高德地图号召全球的开发者利用人工智能技术探索动态路况难题,收到了国内外顶尖学府、科研机构以及一线知名技术企业等产学研各界技术爱好者的积极响应。
为亿级用户的美好出行而战!高德地图首届算法大赛落幕 95后北邮在读博士带队夺冠
阿里云天池发布“最聪明榜单”,浙大夺冠、东北大学“最强黑马”进前三
7月4日,阿里云天池大赛发布“最聪明榜单”,对历史参赛高校进行排名。数据显示,国内高校中浙大参赛热情最高,新加坡国立大学则荣登海外榜首。
2528 0