![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
扩展欧几里得
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
扩展欧几里得
输入两个数a,b求x,y满足a*x+b*y=gcd(a,b)比如说输入3,5 解出来x=2,y=-1所以说,怎么解?我们假设已经求出x1,y1使b*x1+(a%b)*y1=gcd(b,a%b)成立那么x1与x,y1与y的关系是什么呢因为gcd(a,b)=gcd(b,a%b)所以a*x+b*y==b*x1+(a%b)*y1即([]为取整)a...原创 2018-08-10 18:07:12 · 361 阅读 · 0 评论 -
小凯的疑惑(扩展欧几里得)
小凯的疑惑 a , x , b , y , gcd(a,b) 扩展欧几里得啊!!!对于任何k(k为正整数) 一定存在x,y 满足 ax+by=k;想想扩展欧几里得 ax+by=gcd(a,b)=1 是一定有解的设ax+by=gcd(a,b)=1的解为(x0,y0) 满足(x0>=0,y0<0) (x0',y0') 满足(x0'<0,y0'>=0)那...原创 2018-08-17 19:53:11 · 1756 阅读 · 1 评论 -
P4031 [Code+#2]可做题2 [矩阵乘法+exgcd]
传送门我们发现其中f 为斐波那契函数 , 可以用矩阵乘法求出来然后exgcd解方程 , 每隔p/gcd 个就有一个解 , 所以答案就是如果不大于0后面一坨就是0了一篇大佬的题解#include<bits/stdc++.h>#define LL long longusing namespace std;struct Matrix{ LL x[3]...原创 2018-12-04 22:01:51 · 178 阅读 · 0 评论 -
C Looooops [exgcd]
传送门#include<bits/stdc++.h>#define LL long longusing namespace std;int A,B,C,k; LL x,y,gcd;void exgcd(LL a,LL b){ if(!b){x=1,y=0,gcd=a; return;} exgcd(b,a%b); LL x1=y,y1=x-a/b*y; x=x1,...原创 2018-12-08 12:14:52 · 124 阅读 · 0 评论