中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

中國剩余定理

發布時間:2020-07-11 00:19:56 來源:網絡 閱讀:462 作者:qinXpeng 欄目:編程語言

互質

 ll m[N],p[N];//p是質數,m是余數
ll Exgcd(ll a,ll b,ll &x,ll &y)
{
    if(b==0)
    {
        x=1;
        y=0;
        return a;
    }
    ll x1,y1;
    ll d=Exgcd(b,a%b,x1,y1);
    x=y1;
    y=x1-a/b*y1;
    return d;
}
ll Crt(ll *m,ll *p,int l)
{
    ll res=0,n=1,x,y;
    for(int i=0;i<l;i++)
        n*=p[i];
    for(int i=0;i<l;i++)
    {
        ll t=n/p[i];
        ll d=Exgcd(t,p[i],x,y);
        res=(res+m[i]*t%n*x%n)%n;
    }
    return (res%n+n)%n;
}

非互質

#include<cstdio>//*m模數 *a余數
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
typedef long long ll;
void exgcd(ll a,ll b,ll &x,ll &y)
{
    if(!b)
    {
        x=1;y=0;return ;
    }
    exgcd(b,a%b,x,y);
    ll temp=x;
    x=y;y=temp-(a/b)*y;
}
ll inv(ll a,ll b)
{
    ll d=__gcd(a,b);
    if(d!=1)return -1;
    ll x,y;
    exgcd(a,b,x,y);
    return (x%b+b)%b;
}
bool merge(ll a1,ll m1,ll a2,ll m2,ll &a3,ll &m3)
{
    ll d=__gcd(m1,m2);
    ll c=a2-a1;
    if(c%d)return false;
    c=(c%m2+m2)%m2;
    m1/=d;m2/=d;c/=d;
    c*=inv(m1,m2);c%=m2;
    c*=m1*d;
    c+=a1;m3=m1*m2*d;
    a3=(c%m3+m3)%m3;
    return true;
}
ll CRT(ll *a,ll *m,ll n)
{
    ll a1=a[1],m1=m[1];
    for(ll i=2;i<=n;i++)
    {
        ll a2=a[i],m2=m[i];
        ll m3,a3;
        if(!merge(a1,m1,a2,m2,a3,m3))
        return -1;
        a1=a3;m1=m3;
    }
    return (a1%m1+m1)%m1;
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太白县| 滦平县| 巴中市| 天祝| 尼木县| 舞阳县| 自贡市| 陇川县| 德清县| 瑞金市| 高碑店市| 肃宁县| 铜梁县| 体育| 兰考县| 乌拉特前旗| 舟曲县| 云阳县| 鄂托克前旗| 铜梁县| 西城区| 唐河县| 夹江县| 鄯善县| 利辛县| 台东市| 武安市| 嵩明县| 乌拉特后旗| 宁安市| 通化县| 浮山县| 延吉市| 清流县| 出国| 祥云县| 什邡市| 卢氏县| 明光市| 湟中县| 三台县|