ああ...
トピックリンクします。http://poj.org/problem ID = 1061?
X + K *m≡y+ K×n個(MOD L)2匹のカエルは確かに満足を満たす場合
X + K * M-(Y + K×n個)= L *は
K *(nm)はL * = XYを-s
それは、A * X + B * Y = C変形し、線形方程式は、exgcd型によって解決されます。
先= GCDによって斧+(B)
G cで割り切れる分析
次いで、溶液を(X + K * B / G)であり、(YK * A / G)
答えはそう扱われることを、非負必要なことに注意してください...
ACコード:
1の#include <cstdioを> 2の#include <iostreamの> 3 4 使用して 名前空間STDを、 5 6インラインボイド exgcd(長い 長い、長い 長い B、長い 長い&G、長い ロング・X、長い 長い&Y){ 7 であれば {G =(B!)。X = 1。Y = 0 ;} 8 そう {exgcd(B、%のB、G、Y、X)。Y - = X *(A / B);} 9 } 10 11 INTメイン(){ 12 長い 長いXX、YY、L、M、N、A、B、C、G、X、Y。 13 のscanf(" %LLD%LLD%LLD%LLD%LLD "、&XX、YY&、&M、&N、&L)。 14 = N - M。B = L。C = XX - YY。 15 exgcd(A、B、G、X、Y)。// (NM)* X +のL * Y = XX - YY 16 であれば(C%G)のprintf(" 不可の\ n " ); 17 他{ 18 C / A = G。B / A = G。 19 のprintf(" %LLDする\ n "、(X%のB * Cは%のB + B)%のB)。//非負処理 20 } 21が 戻り 0 ; 22です }