HDU 1496 Equations[HASH]
分析: 和 poj 1840很像,用poj 的方法跑了960多毫秒,用 lzsz1212 大牛的方法跑了 200多毫秒
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<stdio.h> #include<string.h> int h[2000000]; const int di=1000000; int main() { int p[101]; int i,j,a,b,c,d,sum; for(i=1;i<=100;i++) p[i]=i*i; while(scanf("%d%d%d%d",&a,&b,&c,&d)!=EOF) { for(i=1;i<=100;i++) for(j=1;j<=100;j++) h[p[i]*a+p[j]*b+di]++; sum=0; for(i=1;i<=100;i++) for(j=1;j<=100;j++) sum+=h[di-p[i]*c-p[j]*d]; for(i=1;i<=100;i++) for(j=1;j<=100;j++) h[p[i]*a+p[j]*b+1000000]--; printf("%d\n",sum<<4); } return 0; }