首页 > 编程语言 >AcWing算法提高课 中国剩余定理 求解多个线性同余方程

AcWing算法提高课 中国剩余定理 求解多个线性同余方程

时间:2022-10-04 11:45:46浏览次数:51  
标签:int res LL ExGCD yy 算法 long 同余 AcWing

 

 

 

 注意这里是构造了一个解,ti由于Mi与mi互质,可以用ExGCD求解

例题:https://www.acwing.com/problem/content/1300/

模板:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;

const int N=10;
int m[N],a[N];
LL ExGCD(LL a,LL b,LL &x,LL &y)
{
    if(b==0)
    {
        x=1,y=0;
        return a;
    }
    LL xx,yy;
    LL gcd=ExGCD(b,a%b,xx,yy);
    x=yy;
    y=xx-a/b*yy;
    return gcd;
}
LL Inv(LL num,LL MOD)
{
    LL res,k;
    ExGCD(num,MOD,res,k);
    return res;
}
int main()
{
    int n;cin>>n;
    long long M=1;
    for(int i=0;i<n;i++)
    {
        cin>>m[i]>>a[i];
        M*=m[i];
    }
    LL res=0;
    for(int i=0;i<n;i++)
    {
        res+=a[i]*M/m[i]*Inv(M/m[i],m[i]);
    }
    res=(res%M+M)%M;
    //要求最小正整数解,故结果对M取正余数
    //因为M是全部a的最小公倍数,对于线性同余方城,取模后不影响结果
    cout<<res<<endl;
}
View Code

 

标签:int,res,LL,ExGCD,yy,算法,long,同余,AcWing
From: https://www.cnblogs.com/ydUESTC/p/16753498.html

相关文章

  • 月薪20k-40k| 苏州挚途科技视觉SLAM算法工程师招聘
    3D视觉工坊致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁。公司介绍:苏州挚途科技有限公司,成立于2019年08月08日,坐落在苏州高铁新城。公......
  • 同余
    同余本章主要记录有关同余、费马小定理、欧拉定理、扩展欧几里得算法、裴蜀定理、乘法逆元、威尔逊定理、线性同余方程、中国剩余定理、扩展中国剩余定理、BSGS以及扩展BS......
  • 从学算法体会如何更好的学习
    一、第一次学习算法记得第一次学习《数据结构和算法》还是在大学的必修课里,是严蔚敏那一版。那个版本的算法跟《算法导论》一样,代码使用的是伪代码。而我们学习的时候,并......
  • 算法
    24.两两交换链表中的节点![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6b52140970264dc68234ba92976a3954~tplv-k3u1fbpfcp-watermark.image?)```/*......
  • 字符串匹配之Sunday算法
    简介Sunday算法是一种字符串匹配算法,相比于KMP算法,它比较简单易学。在有些时候,比如字符串很长的时候,它是比KMP要高效的。核心思想从前往后匹配,匹配失败时关注主串中......
  • Java手写实现链表队列和数组队列【数据结构与算法】
    packagealgorithm;/**@authorAdministrator@date2022-09-1317:50*/publicclassQueueLinked{privatestaticclassNode{Eitem;Nodenext;publicNode(Eitem,N......
  • Java手写实现栈【数据结构与算法】
    packagealgorithm;importjava.util.Arrays;importjava.util.Iterator;/**@authorAdministrator@date2022-09-1216:38数组栈*/publicclassMyArrayStack{//定义......
  • 常见距离算法
    机器学习中有很多的距离计算公式,用于计算数据和数据之间的距离,进而计算相似度或者其他。1.欧式距离(EuclideanDistance)​ 欧式距离是最常见的距离度量方法。小学、初中、......
  • Latex 如何写算法?推荐模板
    之前我已经在​​这篇文章​​总结了现有的算法包的区别。如果有选择苦难症的朋友可以考虑无脑使用以下模板来写算法。\usepackage[noend]{algpseudocode}#noend表示算法......
  • 计算空间物体包围球的两种算法实现
    详细介绍了计算空间包围球的两种算法。1.概述在进行二维空间几何运算的之前,往往会用包围盒进行快速碰撞检测,从而筛掉一些无法碰撞到的可能。而在三......