<Newcoder> gcd exgcd

数论模板 满足a^x≡1(mod n)的最小正整数 Description 满足a^x≡1(mod n)的最小正整数x称为a模n的阶。 现给出两个正整数,求x。 Input 第一行输入k,表示有k组数据 之后k行每行两个数a,n(2 Output 对于每组输入,用一行输出x的值,若不存在输出-1 Sample Input 22 32 4 Sa 阅读详情

求最大公约数 的方法:欧几里得算法 也就是 gcd 不多说 ,但是只适用于一对数字

而多对的话,就需要exgcd,

/*
 ax+by =c ;


*/
ll exgcd(ll a,ll b,ll &x,ll &y){
    if(b==0)
    {
        x=1;
        y=0; 
        return a;
    }
    ll r=exgcd(b,a%b,x,y);
    ll t=x;
    x=y;
    y=t-a/b*y;
    return r;
}
例题: 链接: https://www.nowcoder.net/acm/contest/75/B
来源:牛客网

题目描述

uu遇到了一个小问题,可是他不想答。你能替他解决这个问题吗?
问题:给你k对a和r是否存在一个正整数x使每队a和r都满足:x mod a=r,求最小正解x或无解。


输入描述:

第一行是正整数k(k<=100000)
接下来k行,每行有俩个正整数a,r(100000>a>r>=0)

输出描述:

在每个测试用例输出非负整数m,占一行。
如果有多个可能的值,输出最小的值。
如果没有可能的值,则输出-1。
示例1

输入

2
8 7
11 9

输出

31



#include<iostream>
#define ll long long
using namespace std;
ll a[100025],b[100025];
ll k;
ll exgcd(ll a,ll b,ll &x,ll &y){
    if(b==0)
    {
        x=1;
        y=0; 
        return a;
    }
    ll r=exgcd(b,a%b,x,y);
    ll t=x;
    x=y;
    y=t-a/b*y;
    return r;
}
ll Chinese_Remainder(){
    ll m1,r1,m2,r2,flag,i,d,x,y,c,t;
    m1=a[0],r1=b[0];
    flag=0;
    for(i=1;i<k;i++)
    {
        m2=a[i],r2=b[i];
        if(flag)
        continue;
        d=exgcd(m1,m2,x,y);
        c=r2-r1;
        if(c%d)
        {
            flag=1;
            break;
        }
        t=m2/d;
        x=(c/d*x%t+t)%t;
        r1=m1*x+r1;
        m1=m1*m2/d;
    }
    if(flag)
    return -1;
    if(k==1&&r1==0)
    return m1;
    return r1;
      
}
int main(){
      
    cin>>k;
    for(ll i=0;i<k;i++)
	  cin>>a[i]>>b[i];   
    cout<<Chinese_Remainder()<<endl;   
    return 0;
}

未来的我一定会感谢正在努力的现在的我!

 

1.3 GCD、EXGCD、线性同余方程 1.3 GCD、EXGCD、线性同余方程 最大公约数(GCD)和最小公倍数(LCM)的基本概念也是小学知识。对于任意整数a,ba,ba,b,我们有一个很重要的公式,即a∗b=GCD(a,b)∗LCM(a,b)a*b = GCD(a,b)*LCM(a,b)a∗b=GCD(a,b)∗LCM(a,b)。 首先我们会介绍几种基本的求GCD方式,虽然C++选手完全可以使用__gcd()函数去求,但自定义的求... 阅读详情

相关推荐

gcd及exgcd详解

gcd及exgcd详解

justin666888的博客 1060

2018年全国多校算法寒假训练营练习比赛(第三场)---B---题(线性同余定理)

题目链接---B-一个小问题 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 uu遇到了一个小问题,可是他不想答。你能替他解决这个问题吗? 问题:给你k对a和r是否存在一个正整数x使每队a和r都满足:x mod a=r,求最小正解x或无解。

NSSWTT的博客 368

SublimeText3_build3176 破解版 带注册码

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

gcd与exgcd

gcd与exgcd #include<cmath> #include<bits/stdc++.h> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<string> using namespace s...

lumingran的博客 183

sublime text 3.x 3170 3176破解,注册码

sublime text 3.x 3170 3176破解,注册码 window 32/64 亲测可用,不支持其他系统

Sublime Text 3(3176)注册机

适用于Sublime Text 3176的注册机,压缩包里有破解方法。

gcd算法以及exgcd

1.欧几里得算法 欧几里得是求最大公约数的经典算法,又称辗转相除法。 gcd函数就是用来求(a,b)的最大公约数的。 gcd函数的基本性质: gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|) gcd(a,b)=gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数, 则有 d | a , d...

my博客 2501

Sublime Text 3.x 破解补丁[build 3176可用]

Sublime Text 3.x 破解补丁[build 3176可用] 亲测可用

{模板}Gcd及ExGcd

Gcd求最大公约数 ExGcd求解 尚在懵逼,只能先搞个模板

FarmerJohn 2713

sublime text 3 注册码(亲测可用!)

sublime text 3 注册码(亲测可用!) 具体操作:在sublime里面:Help -> Enter License ,然后输入注册码即可完成注册。

碳化硅外延层厚度测量:红外干涉光谱与FFT技术详解

薄膜厚度测量是半导体制造中的关键工艺控制环节,其核心原理基于光的干涉现象。当光在薄膜上下界面反射并叠加时,会产生与厚度相关的干涉条纹。通过分析这些条纹,可以非接触、无损地获取薄膜的精确厚度信息。这项技术的核心价值在于实现了对关键工艺参数的在线、快速监控,对于提升器件性能与生产良率至关重要。在第三代半导体,尤其是碳化硅功率器件的制造中,外延层厚度直接决定了器件的击穿电压和导通电阻等核心性能。红外干涉光谱法因其对碳化硅材料在红外波段的良好透过性,成为该领域主流的厚度测量方案。通过快速傅里叶变换(FFT)对采集到

weixin_29032489的博客 308

gcd与exgcd(裴蜀定理)

gcd(欧几里得算法)与最大公因数 公式:gcd(a,b)=gcd(b,agcd(a,b)=gcd(b,agcd(a,b)=gcd(b,a%b))) 证明: 设a&gt;ba&gt;ba>b,证明a,ba,ba,b的公因数和b,a−bb,a-bb,a−b的公因数是同样的一堆数 首先,有结论:若 x∣a,x∣b,那么x∣(a−b)x|a,x|b,那么x|(a-b)x∣a...

wichiene 1158

【浅读论文-红外和可见光图像融合-CNN】Infrared and Visible Image Fusion using a Deep Learning Framework

1.这篇是2018年ICPR会议上发表的一篇文章1。博主个人觉得这算比较早期在VIF(红外光和可见光图像融合)中加入了深度学习这一模型的论文。2.这篇文章并不是完全使用深度学习的模型,模型主体在图像分解和融合仍然采用传统的方法,只有其中一个分支在特征提取和重建方面用到了VGG网络。3.论文地址4.代码地址本文提出了基于深度学习框架的一种新算法。本文提出使用下述论文中Image fusion with guided filtering2中的分解方法将源图像分解为基本部分和细节内容。

一枚博鼠的博客 1708

填坑行动10-gcd以及exgcd

文章目录Tipsgcdexgcd Tips 本文中所有方程有解均为方程有整数解 gcd 令gcd⁡(a,b)\gcd\left(a,b\right)gcd(a,b)为a,ba,ba,b的最大公约数。 那么gcd⁡(a,b)=\gcd\left(a,b\right)=gcd(a,b)= exgcd

jiangtaizhe的博客 169

机器学习篇-KNN算法实现鸢尾花模型和手写数字识别模型

一个样本最相似的k个样本中的大多数属于某一个类别, 则该样本也属于这个类别类似于: 近朱者赤近墨者黑回归机器建模流程:数据获取数据基本处理(空值和非法值)特征工程(特征提取, 特征预处理(归一化, 标准化), 特征降维, 特征选择, 特征组合)模型训练模型预测模型评估# 1. 定义函数 dm01_load_iris(), 用于加载 鸢尾花数据集, 并简单查看下数据集的各部分.# 1. 加载数据集.​# 2. 打印iris_data, 发现其实是1个: 字典.​。

m0_60916732的博客 2403

【CADARXC++】ObjectArx2023 C++ CAD二次开发环境配置笔记

从官网或第三方平台下载以下AUtoCAD2023、VisualStudio2019和ObjectArx2023安装时请注意安装顺序。

BIMCATIA的博客 1789

exgcd

exgcd即扩展欧几里得算法,用来解决形如axbygcdabab为常数) 的方程的一组整数解。

2201_75771132的博客 1354

ROS应用之如何配置RTOS满足机器人系统中的实时要求

实时操作系统(RTOS)基本概念实时操作系统(RTOS)是设计用于实时应用的操作系统,其主要目标是在确定的时间内完成任务。RTOS的任务调度算法和优先级控制机制能够确保高优先级任务按时完成。精确的传感器数据采集:传感器数据需要在规定时间内采集并传输给控制系统。快速响应外部事件:对于控制系统,需要确保指令在最短的时间内得到响应。任务的调度周期:任务的周期可以通过公式计算,其中 ftask 是任务的调度频率。优先级分配。

weixin_68094467的博客 1008

gcd exgcd 算法及模板整理(一)

一、gcd铺垫 1.求最大公因数的方法简介 一般有穷举法(暴力1-n过一遍)、更相减损法、辗转相除法, 而后两种本质上是一种方法。 辗转相除法也即欧几里得算法,示例如下: 假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里德算法,是这样进行的: 1997 / 615 = 3 (余 152) 615 / 152 = 4(余7) 152 / 7 = 21(余5) 7 / 5 = 1 (...

Bright_Stars 1282

shopee app算法分析第一篇

shopee app算法分析第一篇分析完整算法大概要好几篇,耐心等待下.国内只会发律师函,牛逼,一个律师套话,一个律师发函,大意了(警惕卡通律师头像),希望law可以保护好你,还是干国外好.

2531

【PINN物理信息网络】基于PINN物理信息网络结合Wave 2D有限差分方法(python)

【PINN物理信息网络】基于PINN物理信息网络结合Wave 2D有限差分方法(python)

k8291121的博客 1818

【学习笔记】exGCD

一、GCD 辗转相除法 gcd(a,b)=gcd(b,agcd(a,b)=gcd(b,agcd(a,b)=gcd(b,a modmodmod b)b)b) 二、裴蜀定理 裴蜀定理:方程ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b)一定存在整数解 三、exGCD 作用:求形似ax+by=c的方程的整数解 由裴蜀定理,gcd(a,b)∣cgcd(a,b) | c...

ModestCoder_的博客 413

Android 15.0 app进程保活白名单功能实现

在15.0的系统rom产品开发中,在某些重要的app即使进入后台,产品需求要求也不想被系统杀掉进程,需要app长时间保活,就是app进程保活白名单功能的实现, 所以需要在系统杀进程的时候不杀掉白名单的进程,接下来就看怎么样来实现这些功能

安卓兼职framework和app工程师的博客 639
上一篇: <OIER> 不凡的牛牛
下一篇: <Newcoder> n方格染色问题
PragIncor
博客等级 码龄9年 1粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值