坐标范围很大,不能开二维数组,用vector也不方便搜索(不过应该也能做,毕竟数据不多)
定义hash函数为x,y的平方和(别忘取mod)
运用一些数学原理,二重循环找正方形对角顶点坐标,由此判断另外两个顶点的坐标,并在hash表中寻找,效率非常高。
另外寻找的对角顶点不定,所以最后答案除以4。
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
struct po{
int x,y;
}a[1001];
int heade[2001],nexte[2001],px[2001],py[2001];
int t,ans,cnt