luogu#P3454. [POI2007] OSI-Axes of Symmetry

[POI2007] OSI-Axes of Symmetry

题目描述

Little Johnny - a well-respected young mathematician - has a younger sister, Justina. Johnny likes hissister very much and he gladly helps her with her homework, but, like most scientific minds, he does mindsolving the same problems again. Unfortunately, Justina is a very diligent pupil, and so she asks Johnny toreview her assignments many times, for sake of certainty. One sunny Friday, just before the famous LongMay Weekend1 the math teacher gave many exercises consisting in finding the axes of symmetry of variousgeometric figures. Justina is most likely to spend considerable amount of time solving these tasks. LittleJohnny had arranged himself a trip to the seaside long time before, nevertheless he feels obliged to help hislittle sister. Soon, he has found a solution - it would be best to write a programme that wouldease checking Justina's solutions. Since Johnny is a mathematician, not a computer scientist, and you are hisbest friend, it falls to you to write it.

Task

Write a programme that:

  • reads the descriptions of the polygons from the standard input,

  • determines the number of axes of symmetry for each one of them,

  • writes the result to the standard output.

给定一个多边形,求对称轴数量。

输入格式

In the first line of the input there is one integer tt (1t101 \le t \le 10) - it is the number of polygons, for which the number of axes of symmetry is to be determined. Next, tt descriptions of the polygons follow. The first line of each description contains one integer nn (3n100 0003 \le n \le 100\ 000) denoting the number of vertices of the polygon. In each of the following nn lines there are two integers xx and yy (100 000 000x,y100 000 000-100\ 000\ 000 \le x, y \le 100\ 000\ 000) representing the coordinates of subsequent vertices of the polygon. The polygons need not be convex, but they have no self-intersections - any two sides have at most one common point - their common endpoint, if they actually share it. Furthermore, no pair of consecutive sides is parallel.

输出格式

Your programme should output exactly tt lines, with the kk'th line containing a sole integer nkn_k - the number of axes of symmetry of the kk'th polygon.

题目大意

题目描述

Johnny 是一位非常年轻的数学家,但他此刻正在为他妹妹的数学作业烦恼。

这个周末,他的妹妹需要完成一项作业,计算各种几何图形的对称轴数量。因为 Johnny 这个周末想要去海边旅行,所以他希望他的妹妹能尽快完成这项作业。

于是他找到了擅长编程的你,你一定能帮助他完成这项任务的!

输入格式

输入包含多组数据。

第一行包含一个整数 tt,代表数据的组数。

对于每组数据,第一行一个整数 nn,代表多边形的顶点数。

接下来 nn 行,每行两个整数 xi,yix_i,y_i,代表每个顶点的坐标。

输入中的第 ii 个顶点会与第 i+1i+1 个顶点连一条边。特别地,输入中的第 nn 个顶点会与第一个顶点连一条边。

输入给出的多边形不保证是凸多边形,但是保证任意两条边只会在端点处相交,且任意两条相邻的边不共线。

输出格式

对于每组数据,输出一行一个整数,即多边形对称轴的数量。

数据范围

1t101 \leq t \leq 103n1053 \leq n \leq 10^5108xi,yi108-10^8 \leq x_i,y_i \leq 10^8

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
4
2