題目大意:給定平面上的一些座標點(1000個),找出這些點能構成多少個正方形,座標取值不大於20000。
解題思路:若遍歷4個點的座標,肯定超時。因此先取兩個點座標,然後用哈希值查找正方形的另兩個點座標,key = (x*x+y*y)%prime,這裏prime取1999(不大於2n的素數),並用鏈地址法解決地址衝突。因爲每個正方形按不同順序被枚舉了4次,所以要除以4。
題目大意:給定平面上的一些座標點(1000個),找出這些點能構成多少個正方形,座標取值不大於20000。
解題思路:若遍歷4個點的座標,肯定超時。因此先取兩個點座標,然後用哈希值查找正方形的另兩個點座標,key = (x*x+y*y)%prime,這裏prime取1999(不大於2n的素數),並用鏈地址法解決地址衝突。因爲每個正方形按不同順序被枚舉了4次,所以要除以4。
Mayor’s posters Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 60890 Accepted: 17606 Des