POJ 1061 青蛙约会(一次同余方程)

正式学数论的第一题。

网上的解法很详细,在此不再赘述。

这里写下求最小正整数的方法:


(n-m)*t+p*L=(X-Y)

M=(n-m,L)

w=(X-Y)/M

(n-m)*(t/w)+L*(p/w)=(n-m,L)

t1=t1*w=t1*(X-Y)/M

((n-m)/M)*(t/w)+(L/M)*(t/w)=1

a0*x+b0*y=1 {(a0,b0)=1}

a0=(n-m)/M,b0=L/M(显然a0,b0互质)

故有 t0=t1+b0*t=t1+L/M*t(t=0,+1,-1,+2,-2,,,,)

故t的变化以s=L/M为幅度.

求最小的正整数t.

t=(t%s+s)%s


你可能感兴趣的:(POJ 1061 青蛙约会(一次同余方程))