数论--扩展欧几里得exgcd
算法思想
我们想求得一组\(x,y\)使得 \(ax+by = \gcd(a,b)\)
根据 \(\gcd(a,b) = \gcd(b,a\bmod b)\)
如果我们现在有\(x',y'\) 使得 \(bx'+(a\bmod b)y' = \gcd(b,a\bmod b)\)
那么
$ax+by = bx'+( a-\lfloor\frac a b\rfloor b)y'$
移项之后
\(ax+by = ay'+b(x'-\lfloor\frac a b\rfloor y')\)
我们可以得到一组特解
$x = y',y = x' - \lfloor\frac a b\rfloor y'$
递归求解,当\(b = 0\)时候,\(x = 1,y = 0\);
模板
int exgcd(int a,int b,int &x,int &y)
{
    if(b==0)
    {
        x = 1; y = 0;return a;
    }
    int x1,y1;
    int ans = exgcd(b,a%b,x1,y1);
    x = y1;
    y = x1-(a/b)*y1;
    return ans;
}
例题
https://www.luogu.com.cn/problem/P1082
参考博客
https://www.zybuluo.com/samzhang/note/541890
数论--扩展欧几里得exgcd的更多相关文章
- interesting Integers(数学暴力||数论扩展欧几里得)
		aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwwAAAHwCAIAAACE0n9nAAAgAElEQVR4nOydfUBT1f/Hbw9202m0r8 
- 同余问题(一)——扩展欧几里得exgcd
		前言 扩展欧几里得算法是一个很好的解决同余问题的算法,非常实用. 欧几里得算法 简介 欧几里得算法,又称辗转相除法. 主要用途 求最大公因数\(gcd\). 公式 \(gcd(a,b)=gcd(b,a ... 
- 浅谈扩展欧几里得[exgcd] By cellur925
		关于扩展欧几里得从寒假时就很迷,抄题解过了同余方程,但是原理并不理解. 今天终于把坑填上了qwq. 由于本人太菜,不会用markdown,所以这篇总结是手写的(什么).(字丑不要嫌弃嘛) ****** ... 
- 扩展欧几里得(exgcd)与同余详解
		exgcd入门以及同余基础 gcd,欧几里得的智慧结晶,信息竞赛的重要算法,数论的...(编不下去了 讲exgcd之前,我们先普及一下同余的性质: 若,那么 若,,且p1,p2互质, 有了这三个式子, ... 
- 扩展欧几里得(exgcd)-求解不定方程/求逆元
		贝祖定理:即如果a.b是整数,那么一定存在整数x.y使得ax+by=gcd(a,b).换句话说,如果ax+by=m有解,那么m一定是gcd(a,b)的若干倍.(可以来判断一个这样的式子有没有解)有一个 ... 
- 扩展欧几里得 exGCD
		Elementary Number Theory - Extended Euclid Algorithm Time Limit : 1 sec, Memory Limit : 65536 KB Jap ... 
- [ZLXOI2015]殉国 数论 扩展欧几里得
		题目大意:已知a,b,c,求满足ax+by=c (x>=0,y>=0)的(x+y)最大值与最小值与解的个数. 直接exgcd,求出x,y分别为最小正整数的解,然后一算就出来啦 #inclu ... 
- 数论 + 扩展欧几里得 - SGU 106. The equation
		The equation Problem's Link Mean: 给你7个数,a,b,c,x1,x2,y1,y2.求满足a*x+b*y=-c的解x满足x1<=x<=x2,y满足y1< ... 
- 【数论】【扩展欧几里得】Codeforces 710D Two Arithmetic Progressions
		题目链接: http://codeforces.com/problemset/problem/710/D 题目大意: 两个等差数列a1x+b1和a2x+b2,求L到R区间内重叠的点有几个. 0 < ... 
随机推荐
- day09——初识函数
			day09 函数的定义 # len() s = 'alexdsb' count = 0 for i in s: count += 1 print(count) s = [1,2,23,3,4,5,6] ... 
- DS 图解快排
			快速排序是交换排序,是冒泡排序的改进版. 快排过程: 1.选定一个分界值 2.分成三个部分(小于分界部分,分界值,大于分界值部分) 3.对于分开的两 ... 
- GO指南练习:切片
			最近开始GO语言的学习,在GO指南中练习到切片这个题目 练习:切片 实现 Pic.它应当返回一个长度为 dy 的切片,其中每个元素是一个长度为 dx,元素类型为 uint8 的切片.当你运行此程序时, ... 
- CentOS7安装Grafana(Yum)
			一.概述 Grafana是一个跨平台的开源的分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知. 其特点: 丰富的可视化显示插件,包括热图.折线图.饼图,表格等等. 多数据源,支持 ... 
- k8s 回滚应用
			kubectl apply 每次更新应用时 Kubernetes 都会记录下当前的配置,保存为一个 revision(版次),这样就可以回滚到某个特定 revision. 滚动更新是一次只更新一小部分 ... 
- Codeforces Round #580 (Div. 1) A-E
			Contest Page A Tag:构造 将$a_i$看做一个无穷数列,$i > 2n$时$a_i = a_{i - 2n}$.设$sgn_i = \sum\limits_{j=i+1}^{i ... 
- ADO.net(内置类区别)随记
			Ado.net使用流程 SqlConnection->open->SqlCommand(sqlstring,conn)->(ExcuteNonQuery \ExecuteScalar ... 
- 在Spring中使用AspectJ实现AOP
			在Spring中,最常用的AOP框架是AspectJ,使用AspectJ实现AOP有2种方式: 基于XML的声明式AspectJ 基于注解的声明式AspectJ 基于XML的声明式AspectJ 1. ... 
- 一些常用的 Emoji 符号(可直接复制)
			表情类 
- Centos7安装DockerCE
			1. 说明 以下使用的系统为centos7,64位,镜像为CentOS-7-x86_64-Minimal-1804,所有操作以root用户操作 2. 安装Docker官方源 2.1 安装yum工具集 ... 
