京东 · 计算几何 · 算法编程题
京东 计算几何 时限 1 秒 / 256 MB

题目描述

平面直角坐标系内有一点 P 。小红希望你构造一个圆满足以下两个条件:
1. 圆和两个坐标轴都相切。
2. 圆经过点 P 。
显然,一共有两个合法的解。你需要从小到大输出这两个解的圆的半径。

输入输出

输入描述
两个正整数 x_P,y_P ,代表点 P 的坐标。
1≤ x_P,y_P ≤ 10^5
输出描述
从小到大输出两个浮点数,分别代表两个解的圆的半径。如果你的答案和标准答案的误差不超过 10^-6 ,则认为你的答案正确。

样例共 1 组

样例 1 · 如下图,蓝色的为合法的两个圆。
输入
1 2
输出
1.0000 5.0000

算法解析依据充分

考点:计算几何 · 基础数学

限制 1 秒 / 256MB | 标准输入输出

题目画像

  • 元素值域:x_P ≤ 1e5,y_P ≤ 1e5(注意整数类型选择,避免溢出)
  • 源站时限:1 秒(牛客口径,非本题专属门槛)

解题思路

推荐方向:计算几何

把几何关系转成坐标运算,用整数运算避免浮点误差。

思路框架(计算几何 通法 · 非本题专属)

  1. 把点、向量、线段用坐标表示。
  2. 几何判定(平行、垂直、共线、相交)尽量用叉积/点积的整数形式:叉积为 0 即共线。
  3. 距离用平方比较,避免开方带来的浮点误差。
  4. 面积用叉积(鞋带公式)计算。

实现要点:叉积 cross = x1*y2 - x2*y1;用它判断顺时针/逆时针和共线。

复杂度:时间 O(n) ~ O(n²) | 空间 O(n)

该范式的通法易错点

  • 用浮点相等判断几何关系(应用整数叉积)。
  • 没考虑三点共线、重合等退化情况。

对照本题

  • 元素值域最大到 1e5 —— 求和 / 相乘时记得开 64 位整数。

样例解读

样例 1:输入 1 2 → 输出 1.0000 5.0000

如下图,蓝色的为合法的两个圆。

解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。

本题来源:2023年秋招-京东-技术通用岗位-第八批笔试。

‹ 上一题 全部编程题 下一题 ›
编程算法题为只读内容:无需作答,直接看题与解析 · 本站不提供在线判题 · 解析由校招宝本地引擎整理,非官方题解