如果直接枚举的话,复杂度为10^10
可以把方程拆成两半,一边三个未知数,另一边两个未知数,然后计算一边的所有可能值,用hash表储存,再枚举另一边的值,查找在哈希表中对应值出现的次数
这里有个优化,就是计算所有的可能值的时候,只计算2个数,因为如果计算3个数的话,会增加哈希表中的数据,导致查找过程变长
一个跑了375ms,另一个直接超时了。。。
另外注意xi != 0 !!!
代码:
如果直接枚举的话,复杂度为10^10
可以把方程拆成两半,一边三个未知数,另一边两个未知数,然后计算一边的所有可能值,用hash表储存,再枚举另一边的值,查找在哈希表中对应值出现的次数
这里有个优化,就是计算所有的可能值的时候,只计算2个数,因为如果计算3个数的话,会增加哈希表中的数据,导致查找过程变长
一个跑了375ms,另一个直接超时了。。。
另外注意xi != 0 !!!
代码: