LL exgcd(LL a,LL b, LL &x, LL &y) {
if(b == 0) {
x=1,y=0;
return a;
}
LL d = exgcd(b, a%b, x, y);
//x=x1,y=y1
LL z = x;//z=x1
x = y;//x=y1
y = z - y * (a / b);
return d;
}

a

x

+

b

y

=

=

g

c

d

(

x

,

y

)

ax + by == gcd(x,y)

ax+by==gcd(x,y) 的最小整数解

假设

a

x

+

b

y

=

=

g

c

d

(

x

,

y

)

ax+by == gcd(x,y)

ax+by==gcd(x,y)
可得

a

x

+

b

y

=

=

g

c

d

(

y

,

x

m

o

d

y

)

ax+by == gcd(y,xmody)

ax+by==gcd(y,xmody)
构造

b

x

1

+

(

a

m

o

d

b

)

y

1

=

=

g

c

d

(

y

,

x

m

o

d

y

)

bx1+(amodb) y1 == gcd(y,xmody)

bx1+(amodb)y1==gcd(y,xmody)
可得

b

x

1

+

(

a

(

a

/

b

×

b

)

)

y

1

=

=

g

c

d

(

y

,

x

m

o

d

y

)

bx1+(a-(a/b \times b)) y1 == gcd(y,xmody)

bx1+(a−(a/b×b))y1==gcd(y,xmody)
化简左项

b

x

1

+

(

a

y

1

(

a

/

b

×

b

)

y

1

)

bx1+(ay1-(a/b \times b)y1)

bx1+(ay1−(a/b×b)y1)

=

=

b

x

1

+

a

y

1

(

a

/

b

×

b

×

y

1

)

== bx1+ay1-(a/b \times b \times y1)

==bx1+ay1−(a/b×b×y1)

=

=

a

y

1

+

b

(

x

1

a

/

b

×

b

×

y

1

)

== ay1+b(x1-a/b \times b \times y1)

==ay1+b(x1−a/b×b×y1)

x

=

y

1

,

y

=

x

1

a

/

b

×

b

×

y

1

x = y1, y = x1-a/b \times b \times y1

x=y1,y=x1−a/b×b×y1

拓展欧几里得 edgcd 模板+简易推论的更多相关文章

  1. HDU-3579-Hello Kiki (利用拓展欧几里得求同余方程组)

    设 ans 为满足前 n - 1个同余方程的解,lcm是前n - 1个同余方程模的最小公倍数,求前n个同余方程组的解的过程如下: ①设lcm * x + ans为前n个同余方程组的解,lcm * x ...

  2. poj 1061 青蛙的约会 拓展欧几里得模板

    // poj 1061 青蛙的约会 拓展欧几里得模板 // 注意进行exgcd时,保证a,b是正数,最后的答案如果是负数,要加上一个膜 #include <cstdio> #include ...

  3. gcd模板(欧几里得与扩展欧几里得、拓展欧几里得求逆元)

    gcd(欧几里得算法辗转相除法): gcd ( a , b )= d : 即 d = gcd ( a , b ) = gcd ( b , a mod b ):以此式进行递归即可. 之前一直愚蠢地以为辗 ...

  4. [zoj 3774]Power of Fibonacci 数论(二次剩余 拓展欧几里得 等比数列求和)

    Power of Fibonacci Time Limit: 5 Seconds      Memory Limit: 65536 KB In mathematics, Fibonacci numbe ...

  5. ACM数论-欧几里得与拓展欧几里得

    ACM数论——欧几里得与拓展欧几里得 欧几里得算法: 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数. 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd ...

  6. NOIP2012拓展欧几里得

    拉板题,,,不说话 我之前是不是说过数据结构很烦,,,我想收回,,,今天开始的数论还要恶心,一早上听得头都晕了 先来一发欧几里得拓展裸 #include <cstdio> void gcd ...

  7. bzoj4517: [Sdoi2016]排列计数--数学+拓展欧几里得

    这道题是数学题,由题目可知,m个稳定数的取法是Cnm 然后剩下n-m本书,由于编号为i的书不能放在i位置,因此其方法数应由错排公式决定,即D(n-m) 错排公式:D[i]=(i-1)*(D[i-1]+ ...

  8. POJ 2891 Strange Way to Express Integers(拓展欧几里得)

    Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express ...

  9. POJ1061 青蛙的约会-拓展欧几里得

    Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事 ...

  10. BZOJ-2242 计算器 快速幂+拓展欧几里得+BSGS(数论三合一)

    污污污污 2242: [SDOI2011]计算器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2312 Solved: 917 [Submit][S ...

随机推荐

  1. 基于GPT搭建私有知识库聊天机器人(六)仿chatGPT打字机效果

    文章链接: 基于GPT搭建私有知识库聊天机器人(一)实现原理 基于GPT搭建私有知识库聊天机器人(二)环境安装 基于GPT搭建私有知识库聊天机器人(三)向量数据训练 基于GPT搭建私有知识库聊天机器人 ...

  2. Linux 脚本:冒泡排序

    #!/bin/bash arr=(3 2 5 4 1) len=${#arr[@]} for i in $(seq 1 $len) ; do index=$(($len - $i - 1)) for ...

  3. PowerShell:因为在此系统上禁止运行脚本,解决方法

    解决方案 get-executionpolicy set-executionpolicy remotesigned 输入Y 至此问题解决

  4. 您在 /var/spool/mail/root 中有新邮件

    查看邮件 删除邮件 禁止系统启动邮件检查这样就再有邮件提示了 mail cat /dev/null > /var/spool/mail/root echo "unset MAILCHE ...

  5. 牛客小白月赛65 E题 题解

    原题链接 题意描述 构造一个\(1\)到\(n\)的排列,使得其中正好有\(k\)个二元组\((i, j)\)满足,\(1\le i\lt j\le n\) && \(a_i - a_ ...

  6. 快速入门OpenCv(python版)

    OpenCV是一个(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 C++ 类构成,同时提供了Python. ...

  7. shell命令-lsof

    前言 lsof是系统管理常用命令,其名指的是list open files,列出打开的文件,而在linux系统,一切皆文件. centos7安装:yum install -y lsof 获取网络信息 ...

  8. 应用性能监控工具(pinpoint)部署

    Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控.方法执行详情查看.应用状态信息监控等功能.pinpoint使用HBASE储存数据. 下面介绍pinpoint部署及应用. 1.  安装 ...

  9. 【升职加薪秘籍】我在服务监控方面的实践(6)-业务维度的mysql监控

    大家好,我是蓝胖子,关于性能分析的视频和文章我也大大小小出了有一二十篇了,算是已经有了一个系列,之前的代码已经上传到github.com/HobbyBear/performance-analyze,接 ...

  10. (2023.8.28)Hi铁布衫-CM Ver 0.001 - Cracked-writeup

    Hi铁布衫-CM Ver 0.001 WriteUp 本文作者:XDbgPYG(小吧唧) 发布时间:2023年8月28日 内容概要:Hi铁布衫-CM Ver 0.001 WriteUp 收集信息 有一 ...