QOJ.ac

QOJ

Time Limit: 4 s Memory Limit: 64 MB Total points: 100 Difficulty: [show]

#286. 2个圆

Statistics

考虑一个具有 $N$ 个顶点的凸多边形。我们希望找到最大的半径 $R$,使得两个半径为 $R$ 的圆可以完全放置在多边形内部且互不重叠。

输入格式

输入的第一行包含一个整数 $N$。接下来的 $N$ 行,每行包含一对整数 $x_i, y_i$,表示第 $i$ 个点的坐标,中间用空格分隔。

输出格式

输出一个实数 $R$,即所求的半径。输出 $R$ 时保留 3 位小数。如果你的输出与正确答案的误差不超过 $0.001$,则该测试点通过。

数据范围

  • $3 \le N \le 50000$
  • $-10^7 \le x_i \le 10^7$
  • $-10^7 \le y_i \le 10^7$
  • 点按三角函数(逆时针)顺序给出。
  • $10\%$ 的测试数据满足 $N = 3$。
  • $40\%$ 的测试数据满足 $N \le 250$。

样例

样例输入 1

4
0 0
1 0
1 1
0 1

样例输出 1

0.293

说明 1

当两个圆的圆心放置在正方形的一条对角线上时,可以获得最大半径。该半径可以精确计算,结果为: $$\frac{\sqrt{2}}{2 * (1 + \sqrt{2})} \approx 0.293$$

样例输入 2

4
0 0
3 0
3 1
0 1

样例输出 2

0.500

样例输入 3

6
0 0
8 0
8 6
4 8
2 8
0 4

样例输出 3

2.189

Figure 1. 两个圆在正方形内部的放置示意图

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.