本文共 568 字,大约阅读时间需要 1 分钟。
#include#include #include #define p 4000037using namespace std;long long a[p],b[200010],c[p];long long n,C,x,qm,ans;long long hash(long long x){ return x%p;}long long dw(long long x){ long long j=0; qm=hash(abs(x)); while(a[hash(j+qm)]!=x&&c[hash(j+qm)]!=0) j++; return hash(j+qm);}int main(){ scanf("%lld%lld",&n,&C); for(int i=1; i<=n; i++) { scanf("%lld",&b[i]); a[dw(b[i])]=b[i]; //一个存 数,一个存 数的次数 c[dw(b[i])]++; } for(int i=1; i<=n; i++) ans+=c[dw(b[i]-C)%p]; //统计 cout<
转载地址:http://gsle.baihongyu.com/