题目链接:传送门
Equations
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8411 Accepted Submission(s): 3468
Problem Description
Consider equations having the following form:
a*x1^2+b*x2^2+c*x3^2+d*x4^2=0
a, b, c, d are integers from the interval [-50,50] and any of them cannot be 0.
It is consider a solution a system ( x1,x2,x3,x4 ) that verifies the equation, xi is an integer from [-100,100] and xi != 0, any i ∈{1,2,3,4}.
Determine how many solutions satisfy the given equation.
Input
The input consists of several test cases. Each test case consists of a single line containing the 4 coefficients a, b, c, d, separated by one or more blanks.
End of file.
Output
For each test case, output a single line containing the number of the solutions.
Sample Input
Sample Output
解题思路:直接枚举100^4肯定会超时,令a*x1^2+b*x2^2 = -c*x3^2-d*x4^2
先算出左半部分的值打个表,然后算出右半部分的值有多少个和表中值相等,时间复杂度为100^2
注意该题的坑:打表的数组得开个两百万左右,所以初始化很耗时,memset比fill快
对于a,b,c,d同时大于0或小于0的情况直接判断,否则会超时,初始化得在这个判断后执行,否则用fill会超时,用memset勉强a过
哎,说多了都是泪!
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include