poj 2002 Squares
题意,给最多1000个点,问这些点最多能组成多少个正方形。
思路就是枚举任意两个点,把其当成某个正方形的边,再看这样的正方形另两个点是不是在已给的点中,如:

设 a=y2-y1 b=x2-x1
则另两个点的坐标为
x3=x1+a x3=x1-a
y3=y1-b 和 y3=y1+b
x4=x2+a x4=x2-a
y4=y2-b y4=y2+b
用hash找另外两个点就可以。
注意:因为每条边都被枚举过,所以形成的答案应除以4。
题意,给最多1000个点,问这些点最多能组成多少个正方形。
思路就是枚举任意两个点,把其当成某个正方形的边,再看这样的正方形另两个点是不是在已给的点中,如:

设 a=y2-y1 b=x2-x1
则另两个点的坐标为
x3=x1+a x3=x1-a
y3=y1-b 和 y3=y1+b
x4=x2+a x4=x2-a
y4=y2-b y4=y2+b
用hash找另外两个点就可以。
注意:因为每条边都被枚举过,所以形成的答案应除以4。