/*DescriptionConsider equations having the following form: a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 The coefficients are given integers from the interval [-50,50]. It is consider a solution a system (x1, x2, x3, x4, x5) that verifies the equation, xi∈[-50,50], xi != 0, any i∈{1,2,3,4,5}. Determine how many solutions satisfy the given equation. InputThe only line of input contains the 5 coefficients a1, a2, a3, a4, a5, separated by blanks.OutputThe output will contain on the first line the number of the solutions for the given equation.Sample Input37 29 41 43 47Sample Output654*///目测是最近写的最短的代码,500ms 3900K飘过,有卡BUG嫌疑//题目很水//就是给你5个数计算一个等式成立的解的个数//放入hash中判断一下,计算数目就行#include#include using namespace std;const int MAX = 20000000;char hash[40000000]; //这里是关键,用char比short节约1半内存,否则直接超内存,尼玛我从int改short再改char才过int main(){// freopen("in.txt","r",stdin); memset(hash,0,sizeof(hash)); int sum=0,i,j,k; int a1,a2,a3,a4,a5; cin >> a1 >> a2 >> a3 >> a4 >> a5 ; //前半段 for(i = -50 ; i <= 50 ; i++) for(j = -50 ; j <= 50 ; j++) if(i!=0 && j!=0) hash[i*i*i*a1 + j*j*j*a2 + MAX]++; //后半段 for(i = -50 ; i <= 50 ; i++) for(j = -50 ; j <= 50 ; j++) for(k = -50 ; k <= 50 ;k++) if(i!=0 && j!=0 && k!=0) sum+=hash[i*i*i*a3 + j*j*j*a4 + k*k*k*a5 + MAX]; cout << sum << endl; return 0;}