题意:给你abcd,问a*x1^2+b*x2^2+c*x3^2+d*x4^2=0有多少个解
解题思路:暴力的话,至少有100^4,这个数量级注定是死亡的。这里又是map冒充hash表的题目,首先把等式变为
a*x1^2+b*x2^2=-c*x3^2-d*x4^2
那么把等式左边的所有可能值及其各存起来-----map[左边的所有可能值] = 个数
然后枚举x3和x4所有的组合值来查看map中出现值的个数,并加起来----ans+=map[-c*x3^2-d*x4^2]
最后,由于每个值有正负两种状态,所以一共有2*2*2*2=16种状态
最后答案为ans=ans*16
946msG++代码
#include