POJ2002《Squares》方法:哈希

题目大意:给定平面上的一些座标点(1000个),找出这些点能构成多少个正方形,座标取值不大于20000。

解题思路:若遍历4个点的座标,肯定超时。因此先取两个点座标,然后用哈希值查找正方形的另两个点座标,key = (x*x+y*y)%prime,这里prime取1999(不大于2n的素数),并用链地址法解决地址冲突。因为每个正方形按不同顺序被枚举了4次,所以要除以4。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章