标签:color 多少 div for 代码 col org cout blank
http://poj.org/problem?id=2115
给出a,b,c,k,问从a开始 每次+c,加多少次能变成b,结果模2^k
计算cx 同余 (b-a)(mod2^k)即可
31 ll extgcd(ll a, ll b, ll &x, ll &y) { 32 ll d = a; 33 if (b) { 34 d = extgcd(b, a%b, y, x); 35 y -= (a / b)*x; 36 } 37 else x = 1, y = 0; 38 return d; 39 } 40 41 ll line_mod_equation(ll a, ll b, ll n) { 42 ll x, y; 43 ll d = extgcd(a, n, x, y); 44 if (b%d == 0) { 45 x = x*(b / d) % (n / d); 46 if (x < 0) x += n / d; 47 return x; 48 } 49 return -1; 50 } 51 52 int main() { 53 ios::sync_with_stdio(false), cin.tie(0); 54 ll a, b, c, k; 55 while (cin >> a >> b >> c >> k) { 56 if (!a && !b && !c && !k) break; 57 k = 1LL << k; 58 ll ans = line_mod_equation(c, b - a, k); 59 if (ans == -1) cout << "FOREVER" << endl; 60 else cout << ans << endl; 61 } 62 return 0; 63 }
标签:color 多少 div for 代码 col org cout blank
原文地址:http://www.cnblogs.com/baocong/p/7663590.html