POJ2002《Squares》方法:哈希

題目大意:給定平面上的一些座標點(1000個),找出這些點能構成多少個正方形,座標取值不大於20000。

解題思路:若遍歷4個點的座標,肯定超時。因此先取兩個點座標,然後用哈希值查找正方形的另兩個點座標,key = (x*x+y*y)%prime,這裏prime取1999(不大於2n的素數),並用鏈地址法解決地址衝突。因爲每個正方形按不同順序被枚舉了4次,所以要除以4。



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