题目大意:给定平面上的一些座标点(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