From:http://wenku.baidu.com/view/fa1a0fe79b89680203d82586.html
讲解比较清楚的资料:http://blog.sina.com.cn/s/blog_6635898a0100on3q.html
AC的数论总结:http://hi.baidu.com/aekdycoin/item/ec528c969cf7a230336eebae
A+CX=B (mod 2^K) 转化为CX=(A-B) (mod 2^K) 求一下模线性方程就好了。
code:这里
Strange Way to Express Integers
模线性方程组的求解。
View Code
对于x=a1 mod b1,x= a2 mod b2,设x=a1+m*b1 所以b1*m=a2-a1 mod b2,利用欧几里德扩展定理求出最小的非负m,那么x=a1+m*b1就已知,且x最小,如果无解,整个同余式组无解 同时,x+k*b1是所有满足x=a1 mod b1的解,而x+k'*b2又是所有满足x=a2 mod b2的解 那么,将x+k*b1与x+k'*b2合并,得到的式子就是x+k*lcm(b1,b2) 于是,上面两个式子可以用x'=x mod lcm(b1,b2)来替代 最后,就只剩下一个式子了,求得的最小的x就是答案
code:这里
同一类型的题目,两只青蛙同步的跳,可以规约为一个同余方程。