对于数学表达式,ai,xi的范围[-50,50]
且x不能为0,将表达式变型为
时间复杂度O(10^6)
#include <iostream>
using namespace std;
int coe[5];
short ans[40000000];
int main(){
int result=0;
for(int i=0;i<5;i++)
cin>>coe[i];
for(int i=-50;i<=50;i++)
for(int j=-50;j<=50;j++)
for(int k=-50;k<=50;k++){
if(i && j && k){
int x = coe[0]*i*i*i+coe[1]*j*j*j+coe[2]*k*k*k;
if(x<0)
ans[40000000+x]++;
else
ans[x]++;
}
}
for(int i=-50;i<=50;i++)
for(int j=-50;j<=50;j++){
if(i && j){
int x = coe[3]*i*i*i +coe[4]*j*j*j;
if(x>0 && ans[40000000-x])
result += ans[40000000-x];
if(x<0 && ans[-x])
result += ans[-x];
}
}
cout<<result<<endl;
return 0;
}