直接上小代码:
其实这题还可以这样理解:
A+B=(A÷x(A,B)+B÷x(A,b))×x(A,B) (x指最大公约数)
所以100+的线段树就出现了。
---------------------------------------华丽的分割线--------------------------------------------------
再介绍一种比较快的解决A+B问题的方法
旋转卡壳。
但是,这样计算出来的值其实为abs(a+b),然而这与实际要计算的值不同。
可以发现,当结果为负数时,b点一定(也只能)在a点的右边,所以自然只要用叉积判断一下即可,十分di简单。