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。

posted @ 2012-06-15 10:55  vpanda  阅读(142)  评论(0)    收藏  举报