Problem Address:http://poj.org/problem?id=2891
本来就是为了推广的欧几里得而找的。
剩余定理其实也是可以用这个来做的。
【思路】
假设C ≡ A1 (mod B1),C ≡ A2 (mod B2)。令C = A1 + X1B,那么X1B1 ≡ A2 − A1 (mod B2)。用扩展欧几里德算法求出X1,也就求出C。令B = lcm(B1, B2),那么上面两条方程就可以被C’ ≡ C (mod B)代替。迭代直到只剩下一条方程。
除此之外也就没什么好说的了。
如果每两组可以求出一个数,则转换a、b后继续往下求。如果不能则输出-1。
关键也就是上面转换的一步了。
【代码】
【P.S.】
今天大概可以结束了,虽然好像还有一些没学习到。
推广的欧几里得的递归思想确实是蛮不错的,要好好消化。
继续努力!