标签:
---恢复内容开始---
Description
Input
Output
Sample Input
37 29 41 43 47
Sample Output
654
暴力+标记
#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <map>
#include <stack>
#define inf 0xfffff
typedef long long ll;
using namespace std;
#define MAXN 25000000
#define mod 10007
#define eps 1e-9
short hash[25000001];
int main()
{
int a1,a2,a3,a4,a5;
while(scanf("%d %d %d %d %d",&a1,&a2,&a3,&a4,&a5)!=EOF)
{
int sum=0;
for(int i=-50; i<=50; i++)
for(int j=-50; j<=50; j++)
for(int k=-50; k<=50; k++)
{
if(i==0||j==0||k==0)
continue;
if(a1*i*i*i+a2*j*j*j+a3*k*k*k<0)
hash[a1*i*i*i+a2*j*j*j+a3*k*k*k+MAXN]++;
else
hash[a1*i*i*i+a2*j*j*j+a3*k*k*k]++;
// cout<<a[q]<<endl;
}
//cout<<q<<endl;
// cout<<a[999999]<<endl;
for(int i=-50; i<=50; i++)
for(int j=-50; j<=50; j++)
{
int u=0-a4*i*i*i-a5*j*j*j;
if(u<0)
u=u+MAXN;;
if(hash[u]&&i!=0&&j!=0)
{
sum+=hash[u];
}
}
printf("%d\n",sum);
}
return 0;
}
---恢复内容结束---
标签:
原文地址:http://www.cnblogs.com/hsd-/p/4655942.html