#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
#include <cmath>
using namespace std;
short hash[25000001];
int main()
{
long long ans;
int a,b,c,d,e;
while(~scanf("%d%d%d%d%d",&a,&b,&c,&d,&e))
{
memset(hash,0,sizeof(hash));
ans=0;
for(int x1=-50;x1<=50;x1++)
{
for(int x2=-50;x2<=50;x2++)
{
if(x1!=0&&x2!=0)
{
int sum=0;
sum+=a*x1*x1*x1;
sum+=b*x2*x2*x2;
if(sum<0)
{
sum+=25000000;
}
hash[sum]++;
}
}
}
for(int x3=-50;x3<=50;x3++)
{
for(int x4=-50;x4<=50;x4++)
{
for(int x5=-50;x5<=50;x5++)
{
if(x3!=0&&x4!=0&&x5!=0)
{
int sum=0;
sum+=c*x3*x3*x3;
sum+=d*x4*x4*x4;
sum+=e*x5*x5*x5;
if(sum<0)
{
sum+=25000000;
}
if(hash[sum])
{
ans+=hash[sum];
}
}
}
}
}
cout<<ans<<endl;
}
return 0;
}HASH入门 POJ1840
最新推荐文章于 2019-07-01 21:07:53 发布
本文介绍了一个使用C++实现的程序,该程序通过构建哈希表来解决特定形式的多项式方程组问题。通过对不同变量组合的遍历计算,程序能够找出所有可能的解并统计解的数量。


828

被折叠的 条评论
为什么被折叠?



