QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 32 MB Total points: 100

#12688. 对称轴

Statistics

小约翰(Little Johnny)是一位备受尊敬的年轻数学家,他有一个妹妹叫贾斯蒂娜(Justina)。约翰非常疼爱他的妹妹,也很乐意帮她辅导功课,但像大多数搞科研的人一样,他并不喜欢反复解决同样的问题。不幸的是,贾斯蒂娜是个非常勤奋的学生,为了确保万无一失,她总是让约翰检查她的作业很多次。在一个阳光明媚的周五,就在著名的“五月长假”[^1]到来之前,数学老师布置了许多练习题,要求找出各种几何图形的对称轴。贾斯蒂娜很可能会花大量时间来完成这些任务。小约翰很久以前就安排好了去海边的旅行,但他觉得自己有义务帮助妹妹。很快,他想到了一个解决方案——最好编写一个程序来简化贾斯蒂娜作业的检查过程。由于约翰是数学家而非计算机科学家,而你是他最好的朋友,这项任务就落到了你的肩上。

编写一个程序,完成以下功能:

  • 从标准输入读取多边形的描述,
  • 确定每一个多边形的对称轴数量,
  • 将结果写入标准输出。

输入格式

输入的第一行包含一个整数 $t$ ($1 \le t \le 10$),表示需要确定对称轴数量的多边形个数。接下来是 $t$ 个多边形的描述。每个描述的第一行包含一个整数 $n$ ($3 \le n \le 100\,000$),表示多边形的顶点数。在接下来的 $n$ 行中,每行包含两个整数 $x$ 和 $y$ ($-100\,000\,000 \le x, y \le 100\,000\,000$),表示多边形各顶点的坐标。多边形不一定是凸多边形,但它们没有自交——任意两条边最多只有一个公共点,即它们确实共享的公共端点。此外,没有任意一对相邻的边是平行的。

输出格式

你的程序应输出恰好 $t$ 行,第 $k$ 行包含一个整数 $n_k$,表示第 $k$ 个多边形的对称轴数量。

样例

输入 1

2
12
1 -1
2 -1
2 1
1 1
1 2
-1 2
-1 1
-2 1
-2 -1
-1 -1
-1 -2
1 -2
6
-1 1
-2 0
-1 -1
1 -1
2 0
1 1

输出 1

4
2

[^1] 在波兰,五月初有许多公共假日和国定假日。它们分别是:5月1日——劳动节(国际劳动节),5月2日——波兰国旗日,5月3日——波兰第一部宪法颁布纪念日(始于1795年)。虽然中间那个较新的节日实际上并非法定假日,但习惯上也会将其作为休息日。想象一下,如果5月1日是周一或者5月3日是周五,你就能体会到什么是“五月长假”了!

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.