欧几里得&卢卡斯定理&中国剩余定理&扩展

欧几里得

LL gcd(LL a,LL b){
    if(!b) return a;
    return gcd(b,a%b);
}

扩展欧几里得

a x + b y = c 有解的充要条件是 g c d ( a , b ) | c
解方程: a x + b y = 1
求a的乘法逆元 a x 1 ( m o d   m ) 等价于 a x = 1 + m y a x + m y = 1

void exgcd(LL a,LL b,LL &x,LL &y){
    if(!b){x=1; y=0; return ;}
    exgcd(b,a%b,x,y);
    LL t=x; x=y; y=t-a/b*y;
}

lucas定理

C ( n , m ) C ( n / p , m / p ) C ( n   m o d   p , m   m o d   p )   ( m o d   p )

猜你喜欢

转载自blog.csdn.net/qq_32461955/article/details/82025584