扩展欧几里得
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 · 451 阅读 · 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 · 1889 阅读 · 1 评论 -
P4031 [Code+#2]可做题2 [矩阵乘法+exgcd]
传送门 我们发现 其中f 为斐波那契函数 , 可以用矩阵乘法求出来 然后exgcd解方程 , 每隔p/gcd 个就有一个解 , 所以答案就是 如果不大于0后面一坨就是0了 一篇大佬的题解 #include<bits/stdc++.h> #define LL long long using namespace std; struct Matrix{ LL x[3]...原创 2018-12-04 22:01:51 · 230 阅读 · 0 评论 -
C Looooops [exgcd]
传送门 #include<bits/stdc++.h> #define LL long long using 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 · 166 阅读 · 0 评论
分享