hdu 1496 Equations(哈希表)
2013-05-08 11:25
465 查看
昨天才看到这个题的加强版,今天就又遇见了。
这道题时间卡得很厉害,如果没有提前判断,对每一次输入都直接把mark数组赋值为0,会超时。
其实我没学过哈希表,也不知道那是什么东西。但是别人都说是哈希表,我也就跟着哈希表吧。
将一个四重循环分成两个二重循环。
这道题时间卡得很厉害,如果没有提前判断,对每一次输入都直接把mark数组赋值为0,会超时。
其实我没学过哈希表,也不知道那是什么东西。但是别人都说是哈希表,我也就跟着哈希表吧。
将一个四重循环分成两个二重循环。
#include<stdio.h> #include<string.h> #define N 1000000 int mark[2000005]; int main() { int i,j; int a[105]; for(i=1;i<=100;i++) a[i]=i*i; int b[5]; while(scanf("%d%d%d%d",&b[0],&b[1],&b[2],&b[3])!=EOF) { if(b[0]<0&&b[1]<0&&b[2]<0&&b[3]<0||b[0]>0&&b[1]>0&&b[2]>0&&b[3]>0) { printf("0\n"); continue; } int temp; memset(mark,0,sizeof(mark)); for(i=1;i<=100;i++) { for(j=1;j<=100;j++) { temp=b[0]*a[i]+b[1]*a[j]; mark[N+temp]++; } } int ans=0; for(i=1;i<=100;i++) { for(j=1;j<=100;j++) { temp=b[2]*a[i]+b[3]*a[j]; ans+=mark[N-temp];//后两个数的和和前两个数的和相加为0。 } } printf("%d\n",ans*16); } return 0; }
相关文章推荐
- hdu 1496 Equations(暴力,哈希表 剪枝)
- HDU 1496 Equations(哈希表)
- hdu 1496 Equations
- HDU 1496 Equations
- HDU 1496 Equations
- HDU 1496 Equations
- HDU 1496 哈希表实现
- hdu 1496 Equations
- hdu 1496 Equations (整数Hash)
- hdu 1496 Equations (hash)
- hdu 1496 Equations(hash)@
- HDU-1496-Equations && POJ-1840-Eqs (hash)
- HDU 1496 Equations 【整数Hash】
- hdu 1496 Equations ——hash
- HDU 1496 Equations(大整数的hash)
- HDU 1496 Equations 哈希
- HDU 1496 Equations
- hdu 1496 Equations (暴力+hash)
- HDU 1496 Equations
- HDU 1496 Equations