POJ 1840 Eqs 暴力哈希

来源:互联网 发布:黄软件什么最好 编辑:程序博客网 时间:2024/04/30 00:17

用short

#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <vector>#include <set>#include <map>#include <stack>#include <queue>using namespace std; short has[25000000];//上限为15000000,把负数全都移到15000000之后int main(){    int a[5];    int i, j, k;    for(i = 0;i < 5;i++){        scanf("%d", &a[i]);    }    int sum;    for(i = -50;i <= 50;i++){        if(!i)  continue;        for(j = -50;j <= 50;j++){            if(!j)  continue;            sum = a[0]*i*i*i + a[1]*j*j*j;            if(sum < 0) sum +=25000000;            has[sum]++;        }    }    int Sum = 0;    for(i = -50;i <= 50;i++){        if(!i)  continue;        for(j = -50;j <= 50;j++){            if(!j)   continue;            for(k = -50;k<=50;k++){                if(!k)  continue;                sum = a[2]*i*i*i+a[3]*j*j*j+a[4]*k*k*k;                if(sum < 0) sum += 25000000;                Sum +=has[sum];            }        }    }    printf("%d\n", Sum);    return 0;}


0 0
原创粉丝点击