P5600 【XR-4】尺规作图
题目背景
这是一道提交答案(人类智慧)题。
题目描述
你有若干个已知的几何图形,你需要通过尺规作图得到一个要求的点。你需要在规定步数之内找到这个点。
你可以进行的操作如下:
1. 以一个已知点为圆心,另一个已知点为圆上一点作圆。
2. 连接两个已知点形成一条直线。
你需要输出你的作图步骤。
输入格式
无
输出格式
无
说明/提示
对于每一个测试点,如果你用的步数小于等于前 $i$ 个评分参数,那么你会得到 $i$ 分。
注意事项如下:
1. **所有的 $x, y$ 必须是你已经得到的点**,这里的已经得到是指输入数据中的点或者已知几何图形的交点。(也就是说你不能随便选择一个点来作图,也不能通过选择一个合适的点来得到要求的点)
更准确地说,每次你输出一个坐标,Special Judge 会选择当前你已经得到的所有点中和你的输入坐标欧几里得距离最近的点作为你这一次的选择点。如果距离最近的点距离大于了 $10^{-5}$,那么这次操作会被判定为不合法,同时这一个点你将得到 $0$ 分。
2. 你不能根据圆心和半径作圆,而只能根据圆心和圆上一点作圆。
3. **你画出的答案与要求的点绝对误差或相对误差不超过 $10^{-5}$ 即为正确**(因为不知道怎么写没有误差的 Special Judge)。
更准确地说,假设你得到的点是 $(x_1, y_1)$,而要求的点是 $(x_2, y_2)$,则你的输出被认为正确,当且仅当 $\dfrac{|x_1-x_2|}{\max(|x_2|, 1)} \le 10^{-5}$ 且 $\dfrac{|y_1-y_2|}{\max(|y_2|, 1)} \le 10^{-5}$。
4. 下发文件中的 `data1.in` 到 `data10.in` 分别为 $10$ 个输入数据,其中第 $1,2,3,7,8$ 这五个测试点配有图解。
5. 下发的 checker 可以判断你的得分。使用方法如下(其中 `data.in` 是输入文件,`data.out` 是你的输出文件。):
- Windows-32/64:
```
checker data.in data.out data.out
```
- Linux/MacOS:
```
./checker data.in data.out data.out
```
6. 出题人拿不到 $100$ 分。
update:checker 源码可以点击 [这里](/paste/capu9k2n) 查看,如果有需要改进的地方欢迎提出。