zoukankan      html  css  js  c++  java
  • [模板]中国剩余定理/扩展中国剩余定理

    中国剩余定理(crt)

    求解同余方程组${x=a_i (mod b_i)$,要求$b_i$互质

    有公式$x = sum{a_iM_it_i} , lcm是b的最小公倍数, M_i=lcm/b_i , t_i=M_i^{-1}(mod b_i)$

    因为感觉被excrt完爆所以看看得了233

    扩展中国剩余定理(?)(excrt)

    $b_i$可以不互质

    考虑已经满足了前i-1个方程的解ans,前i个b的lcm是M

    那么前i-1个方程的通解就是$ans+kM$

    那么对于第i个方程,有$ans+Mx=a_i (mod b_i)$,可以用exgcd求解

    然后更新ans和M,继续做即可

    1 ll ans=0,M=1;
    2 for(i=1;i<=N;i++){
    3     ll x,y,a=M,b=B[i];
    4     ll c=((A[i]-ans)%b+b)%b,g=exgcd(a,b,x,y);
    5     x=slowmul(x,c/g,b/g);
    6     ans=ans+M*x;M*=b/g;
    7     ans=(ans%M+M)%M;
    8 }
  • 相关阅读:
    Day 9
    Day 8
    Day 7
    Day 6
    Day 5
    Day 4
    Day 3
    Day 2
    Day 1
    解决vue-cli3不停请求 /sockjs-node/info?t= 问题
  • 原文地址:https://www.cnblogs.com/Ressed/p/10089197.html
Copyright © 2011-2022 走看看