为什么会有此博客?
此博客是为了博主复习时方便地背模板。
博主在代码部分都是默写的,所以可能会有点小错误,见谅。
前半部分重点关注于数论。如果觉得很好的朋友可以收藏了慢慢看
卡常必备!快速读入
int read() {
int s=0,f=1;char a=getchar();
while(a<'0' || a>'9') { if(a=='-') f=-1; a=getchar(); }
while(a>='0' && a<='9') { s=s*10+a-'0'; a=getchar() ; }
return f*s;
}
数论基础:扩展欧几里得算法(解二元一次不等式及求最大公因数)
int exgcd (int a,int b ,int& x,int& y) {//函数将返回(gcd(a,b))
if(b==0) {
x=1,y=0;
return a;
}
int sum=exgcd(b,a%b,y,x)
y-=(a/b)*x;
return sum;
}
求逆元(扩展欧几里得法)
int exgcd (int a,int b ,int& x,int& y) {//函数将返回(gcd(a,b))
if(b==0) {
x=1,y=0;
return a;
}
int sum=exgcd(b,a%b,y,x)
y-=(a/b)*x;
return sum;
}
int inv(int sum,int mod) {//注意:sum与mod必须互质
int x,y;
exgcd(sum,mod,x,y);
return (x%mod+mod)%mod;
}
快速幂(求逆元的费马小定理方法用得到)
LL qkpow(LL base,LL indexx)//MOD为模数,题目不要去去掉即