模板—数学—Exgcd】的更多相关文章

模板—数学—Exgcd Code: #include <cstdio> #include <algorithm> using namespace std; int ex_gcd(int a,int b,int &x,int &y) { if(!b) {x=1,y=0;return a;} int gcd=ex_gcd(b,a%b,x,y),tmp=x; x=y,y=tmp-a/b*y; return gcd; } int a,b,c,gcd,x1,y1; int m…
模板—数学—Lucas Code: #include <cstdio> #include <algorithm> using namespace std; #define N 100010 int n,m,p,inv[N],powq[N]; int lucas(int n,int m) { if(n<m) return 0; if(n<=p&&m<=p) return 1ll*powq[n]*inv[m]%p*inv[n-m]%p; return…
[SinGuLaRiTy-1047] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 质因数分解 void solve(int n) { ==) { printf(); n/=; } ;i<=sqrt(n);i+=) { ) { n/=i; printf("%d*",i); i-=; } } printf("%d\n",n); } 欧拉线性筛素数 #define MAXN 100005 #define…
1.求逆元 int inv(int a) { ) ; return (MOD - MOD / a) * inv(MOD % a); } 2.线性筛法 bool isPrime[MAXN]; int label[MAXN], prime[MAXN]; int n, total; void makePrime() { n = ; ; i <= n; ++i) { if(!label[i]) { prime[total++] = i; label[i] = total; } ; j < label[…
exgcd解不定方程时候$abs()$不能乱加 Description Input 第1行为一个整数N(1<=N<=15),即野人的数目. 第2行到第N+1每行为三个整数Ci, Pi, Li表示每个野人所住的初始洞穴编号,每年走过的洞穴数及寿命值. (1<=Ci,Pi<=100, 0<=Li<=10^6 ) Output 仅包含一个数M,即最少可能的山洞数.输入数据保证有解,且M不大于10^6. Sample Input 3 1 3 4 2 7 3 3 2 1 Samp…
普通的扩展欧几里得算法,通过了洛谷的扩展欧几里得算法找乘法逆元.修复了容易溢出的bug,虽然新版本仍有可能会溢出longlong,假如参与运算的数字都是longlong,假如可以的话直接使用__int128或者去抄一个RoundGod的BigInt的模板(这里的C题).事不宜迟明天就抄这个大数模板. 求解模n意义下a的逆元,即求方程LCE2(a,1,n,x),结果放入x中,返回值指示是否有解. ll gcd(ll a, ll b) { if(b == 0) return a; while(ll…
先看看. 通常模数常见的有998244353,1004535809,469762049,这几个的原根都是3.所求的项数还不能超过2的23次方(因为998244353的分解). 感觉没啥用. #include <cstdio> #include <cstring> template <class T> inline void swap(T &a, T &b) { T c; c = a; a = b; b = c; } ; , G = ; inline in…
费马(Fermat)小定理 当 \(p\) 为质数,则 \(a^{p-1}\equiv 1 \mod p\) 反之,费马小定理的逆定理不成立,这样的数叫做伪质数,最小的伪质数是341. 欧拉(Euler)定理 扩展欧拉(Euler)定理 根据扩展欧拉定理,不管a和p是不是互质,都可以缩小到 \([\varphi(p),2\varphi(p)]\) 之间,然后暴力用快速幂求解.…
使用Fermat小定理(Fermat's little theorem)的原理进行测试,不满足 \(2^{n-1}\;\mod\;n\;=\;1\) 的n一定不是质数:如果满足的话则多半是质数,满足上式(通过2为底的Fermat小定理测试)且是合数的,被称为"伪质数"(pseudoprime number),一个简单的伪质数是341.一个合数可能在a=2时通过了测试,但a=3时的计算结果却排除了素数的可能.于是,人们扩展了伪素数的定义,称满足 \(a^{n-1}\;\mod\;n\;=…
终于知道发明者的正确的名字了,是Min_25,这个筛法速度为亚线性的\(O(\frac{n^{\frac{3}{4}}}{\log x})\),用于求解具有下面性质的积性函数的前缀和: 在 \(p\) 处是简单的低次多项式 在 \(p^c\) 处可以快速求值 貌似积性函数是指取一个积性函数 \(f(x)\) ,其在质数的位置上取值与所求函数相同.所以可以用来求n以内的质数的个数(取常函数 \(f(x)=1\) )以及质数的和(取恒等函数 \(f(x)=x\) ). 参考资料: loj#6235.…