美文网首页
poj2891中国剩余定理(不互质)

poj2891中国剩余定理(不互质)

作者: 暖昼氤氲 | 来源:发表于2019-12-14 18:40 被阅读0次
/*
Time:2019.12.14
Author: Goven
type:线性同余方程组+中国剩余定理 
ref:
[知识点]
https://blog.csdn.net/u012061345/article/details/80934617
https://blog.csdn.net/tick_tock97/article/details/71313058
https://blog.csdn.net/destiny1507/article/details/81751168
[代码]https://blog.csdn.net/u012061345/article/details/80939440 
*/
#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;



void ext_gcd (ll a, ll b, ll &x, ll &y, ll &d) {
    if (b == 0) {
        x = 1;
        y = 0;
        d = a;
        return;
    }
    ext_gcd(b, a % b, y, x, d);
    y -= a / b * x;
}

bool mergeCrt (ll a1, ll c1, ll a2, ll c2, ll &tpa1, ll &tpr1) {
    ll d , x, y;
    ext_gcd(a1, a2, x, y, d);
    ll c = (c2 - c1) % a2;//err1:扩展欧几里得中c必须是 % mod之后的 
    if (c % d) return false;
    x = c / d * x;
    ll mod = a2 / d; mod = mod > 0 ? mod : -mod;
    x = (x % mod + mod) % mod;
    
    tpa1 = a1 / d * a2;
    tpr1 = (x * a1 % tpa1 + c1) % tpa1;
    return true;
    
}

int main()
{
    int k;
    ll a1, r1, a2, r2;
    while (cin >> k) {
        a1 = 1, r1 = 0;
        bool flag = true;
        for (int i = 0; i < k; i++) {
            cin >> a2 >> r2;
            if (flag) {
                flag = mergeCrt(a1, r1, a2, r2, a1, r1);
            }
            
        }
        if (flag) cout << r1 << endl;
        else cout << -1 << endl;
    } 
    return 0;
}

相关文章

  • poj2891中国剩余定理(不互质)

  • 模板-->中国剩余定理[互质版本]

    如果有相应的OJ题目,欢迎同学们提供相应的链接 相关链接 所有模板的快速链接 扩展欧几里得extend_gcd模板...

  • poj1006 中国剩余定理(互质)

  • 中国剩余定理

    中国剩余定理给出了求解模数两两互质的线性同余方程组的一个特解。设是两两互质的整数,,,是线性同余方程的一个解。对于...

  • POJ1006

    传说中的“中国剩余定理” 问题描述:### 对于3个互质的自然数:a, b, c我们需要求一个数x, 使得下列式子...

  • 中国剩余定理

    昨天下午同事给我出了一到题目: 一筐鸡蛋,1个1个拿,拿完;2个2个拿,剩余1个;3个3个拿,拿完;4个4个拿,剩...

  • 中国剩余定理

    用中国剩余定理求解同于式组 / x≡b1 (mod m1)| x≡b2 (mod m2)| x≡b3 (mod m...

  • 中国剩余定理

    下表由本人制作,与上表字符含义不同,切勿混淆

  • 中国剩余定理

    表述 设为互素的整数,b与c为任意整数。那么同余式组:恰好有一个解。 证明 等价于,带入得。根据线性同余式定理,上...

  • CRT中国剩余定理

    特别版(除数两两互质) 普通版(任意情况)两两合并变成互质情况。

网友评论

      本文标题:poj2891中国剩余定理(不互质)

      本文链接:https://www.haomeiwen.com/subject/wrhhnctx.html