天天看點

題解 P1516 【青蛙的約會】

有一個長度為 \(l\) 的圓環,圓環上有兩個點 \(A,B\) ,分别位于 \(x,y\) ,每次分别可跳 \(m,n\) 個機關,問跳多少次相遇。無解輸出 <code>Impossible</code> 。

對此可列出同餘方程:

\[(x+am)\equiv (y+an)(\bmod l)

\]

展開:

\[(x+am)-(y+an)=bl

\[x-y+a(m-n)=bl

\[a(m-n)-bl=y-x

這裡 \(a,b\) 即為我們所求。擴歐後推廣解就行了。但由于 \(x=x_0+ k\frac{b}{\gcd(a,b)}\) ,是以求最小正整數要對 \(\frac{b}{\gcd(a,b)}\) 取模。

開LL。

注意無解情況。

代碼