• 扩欧板子+中国剩余定理板子


    关于扩欧:

    这个板子我不想再记不住了,所以我推一遍

    求解 ax+by = c;

    裴蜀定理 : ax+by=gcd(a,b)一定有解

    所以如果 c%gcd!=0 则一定无解

    同乘以 d/c  a(d/c*x)+b(d/c*y)=d;

    求解的 答案乘上 c/d 就是原来的答案

    由 欧几里得 可以得到

    (b)x+(a%b)y==gcd(b,a%b)

    a%b=a-(a/b)*b

    根据多项式的准则

    ax+by=d

    所以 x=y

    y=x-(a/b)*y

    注意应写成 ex_gcd(b,a%b,y,x)//x=y

    y=x-(a/b)*y

    好了上板子

    code:

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

    中国剩余定理:

    最小整数解:

    x = (a1*M1*inv(M1) + a2 * M2 * inv(M2) + .... + ai * Mi * inv(Mi) + ... + ak*Mk*inv(Mk))%M;

    其中:Mi = M/mi ; inv(Mi) 为 Mi 模 mi 的逆元。

    求逆_>欧几里得扩展 就好了

    费马小定理 的模数必须为质数

    刀剑映出了战士的心。而我的心,漆黑且残破
  • 相关阅读:
    union
    大端和小端
    迭代器
    STL
    动态内存管理2
    动态内存管理
    关于 FlexBox
    CSS的居中问题
    操作符
    JavaScript介绍
  • 原文地址:https://www.cnblogs.com/OIEREDSION/p/11297658.html
Copyright © 2020-2023  润新知