网易互娱笔试第三题题解
Ax+By+Cz+Dw = N
ABCDN 和 xyzw都是非负整数,所以想要等式成立,必然yzw越大,x越小。yzw越小x越大。
所以Math.max(N - (B * y-possiblemax + C * z-possiblemax + D * w-possiblemax) / A,0) 是 x理论的可能最小值,x如果比这个值小,这个方程是不可能有满足条件的解的。
同理Math.min(x-possiblemax,N / A)是x理论的可能最大值,x如果比这个值大,这个方程也是不可能有满足条件的解。
上面的这个约束条件再加上最后遍历判断的时候直接判断 (N-(Ax+By+Cz)) % D == 0就行
ABCDN 和 xyzw都是非负整数,所以想要等式成立,必然yzw越大,x越小。yzw越小x越大。
所以Math.max(N - (B * y-possiblemax + C * z-possiblemax + D * w-possiblemax) / A,0) 是 x理论的可能最小值,x如果比这个值小,这个方程是不可能有满足条件的解的。
同理Math.min(x-possiblemax,N / A)是x理论的可能最大值,x如果比这个值大,这个方程也是不可能有满足条件的解。
上面的这个约束条件再加上最后遍历判断的时候直接判断 (N-(Ax+By+Cz)) % D == 0就行
全部评论
忍耐王
相关推荐

点赞 评论 收藏
分享