#include<bits/stdc++.h>
using namespace std;
struct HashMAP{
static const int mask = 0x7fffff;
int p[8388608],q[8388608];
void Clear()
{
for(int i=0;i<=mask; ++ i) q[i]=0;
}
int& operator [] (int k){
int i;
for(i=k&mask; q[i]&&p[i]!=k;i=(i+1)&mask) ;
p[i]=k;
return q[i];
}
}Hash;
int main()
{
int t;
scanf("%d",&t);
while(t--){
Hash.Clear();
int n,sum=0 ,a[4100],b[4100],c[4100],d[4100];
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
Hash[a[i]+b[j]]++;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
sum+=Hash[-(c[i]+d[j])];
printf("%d\n",sum);
if(t) printf("\n");
}
return 0;
}
[Hash思想]UVa1152 - 4 Values whose Sum is 0
最新推荐文章于 2020-05-05 11:28:43 发布