首页 > TAG信息列表 > 扩欧

扩欧求逆元

古老的故事,但我确实想不起来了。 逆元的定义是 \(x\times a\equiv 1\pmod{b}\) ,等价于 \(x\times a=1+y\times b\),即是 \(x\times a+y\times (-b)=1\),用扩欧解方程即可。 有局限,根据扩欧的要求,上述柿子中的 a 和 b 必须互质,所以就有 CRT 和 EXCRT 的分别。但它又比费马小定理求逆

筛法、积性函数、欧拉定理、裴蜀定理、扩欧 总结

啊啊啊快吐了。。。。。。。。。。 筛质数 埃筛 对于每一个质数,标记它的所有倍数(除了它本身)为合数。 时间复杂度:\(\mathcal {O}(nlog(log(n)))\)。 拓展1:\(1\sim n\) 中质数约有 \(n/ln(n)\) 个。 拓展2:\(1\sim n\) 中质因数约有 \(nlog(log(n))\) 个。(由埃筛复杂度可知) 题目 Pr

【扩欧】Ptynb!!

题意 \(T\)组数据,求出最小的\(x\)使得\(n|\frac{x(x+1)}{2}\) \(1\leq T\leq 100,1\leq n\leq 10^{12}\) 思路 原式\(\to 2n|x(x+1)\)。 设\(2n=A*B\),且\(x+1=Ax_0,x=By_0\) 则题目所求即为\(Ax_0-By_0=1\)的解中,最小的\(By_0\),食用扩欧即可。 时间复杂度\(O(T*(n的分解质因数复杂

Romantic HDU - 2669(扩欧)

#include<bits/stdc++.h> using namespace std; typedef long long LL; void gcd(LL a, LL b, LL &d, LL &x, LL &y) { if(!b) { d = a; x = 1; y = 0; } else { gcd(b, a % b, d, y, x); y -

P1082 同余方程(扩欧模板)

https://www.luogu.org/problem/P1082 #include <iostream>#include <cstdio>#include <queue>#include <algorithm>#include <cmath>#include <cstring>#define inf 2147483647#define N 1000010#define p(a) putchar(a)#define For(i

扩欧与乘法逆元

扩展欧几里得能求出形如a*x+b*y=gcd(a,b)的通解x,y。 我们设 a1*x1+b1*y1=gcd(a,b)   (1) a2*x2+b2*y2=gcd(a,b)     (2) 并且a2=b1,b2=a1%b1=a1-(a1/b1*b1) 则(1)(2)相等可得a1*x2+b1*y1=b1*x2+[a1-(a1/b1*b1)]* y2 对应系数相等可得:x1=y2 ,y1=x2-a1/b1*y2; 如此迭代下去直到b=0时,