扩展欧几里得
时光ice
这个作者很懒,什么都没留下…
展开
-
C Looooops POJ - 2115
扩展欧几里得算法题目描述:算循环的次数,初始值为A,跳出循环的条件是A!=B,A每次+C,设所有的运算都是二进制k位数,运用补码的原理,当x=2^k,则x+1溢出后=1.解题思路:扩展欧几里得算法。推一下方程,令所求的次数为x (A+Cx)%2^k=B ->A+Cx=2^k*y+B ->移项得Cx-2^k*y=B-A; 将各参数代入函数即可。代码如下:#include #in原创 2017-05-23 00:21:14 · 303 阅读 · 0 评论 -
青蛙的约会 POJ - 1061
扩展欧几里得题目描述:两只青蛙都沿着一个圆轨道往西跳,第一个青蛙一步调m,第二个青蛙一步跳n,初始时第一个在位置x,第二个在位置y,轨道长度是L,求跳多少次他俩相遇。解题思路:扩展欧几里得。在此处我令第一个青蛙位置为大写的X,第二个为大写的Y,所求的次数为小写的x.方程 (X+mx)%L=(Y+nx)%L -> X+mx=pL+(Y+nx)%L ->X+mx-pL=(Y+nx)%L -原创 2017-05-22 00:02:28 · 383 阅读 · 0 评论 -
AB HDU 1576
扩展欧几里得题目描述:因为A值太大没有给出,给出了A%9973的值为n,另外还给出了B,求(A/B)%9973的值。题目分析:推一下方程,用扩展欧几里得算法。另(A/B)%9973的值为x, 方程推导过程:(A/B)%9973=x -> A/B=9973*m+x -> A = 9973*m*B+x*B -> 将上式A带入A%9973 -> (9973*m*B+x*B)%9973原创 2017-05-22 20:55:32 · 295 阅读 · 0 评论