平面上有 n 个圆,请你找到一个圆,满足和其余所有的圆都不存在交点。 我们定义,两个圆包含或者相离均视为没有交点。
第一行输入一个正整数 n(1≤ n ≤ 1000) 表示圆的数量。 此后 n 行,第 i 行输入三个正整数 x_i,y_i 和 r_i(1 ≤ x_i, y_i, r_i ≤ 10^9) ,代表第 i 个圆的圆心为 (x_i,y_i) ,半径为 r_i 。
若不存在这样的圆,直接输出 -1 ;否则,输出一个正整数 i ,代表第 i 个圆满足条件。 如果有多个满足题意的答案,你只需要输出其中一种即可。
3 1 1 1 2 2 2 3 3 5
3
考点:模拟 · 计算几何
数据规模 n ≤ 1e3 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:模拟
不涉及复杂算法,把题目描述的流程原样翻译成代码逐步执行即可。
思路框架(模拟 通法 · 非本题专属)
实现要点:结构上通常是一个外层循环包住若干 if/else 分支;只要状态定义清楚,正确率很高。
复杂度:时间 O(操作次数) | 空间 O(状态数)
该范式的通法易错点
对照本题
样例 1:输入 3 / 1 1 1 / 2 2 2 / 3 3 5 → 输出 3
第一个圆和第二个圆相切(有一个交点)。
第三个圆和前两个圆均没有交点。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2024年秋招-OPPO-数据开发岗笔试。