[关闭]
@ysner 2018-04-12T23:07:07.000000Z 字数 2558 阅读 2151

数论初步

数论


逆元求解

费马小定理

假如a是一个整数,b是一个素数,,则

应用:

欧拉定理

为正整数,且互质,则

费马小定理是欧拉定理的特殊情况,因为为素数时,
拓欧降次:

实践

给定,求在模意义下的逆元。

  1. int exgcd(int a,int b,int &d,int &x,int &y)
  2. {
  3. if(!b) x=1,y=0,d=a;
  4. else exgcd(b,a%b,d,y,x),y-=x*(a/b);
  5. }
  6. {
  7. re int a;
  8. exgcd(i,p,g,x,y);
  9. while(x<0) x+=p;
  10. printf("%d\n",x);
  11. }

矩阵乘法

  1. struct matrix{
  2. int a[100][100];
  3. matrix()
  4. {
  5. memset(a,0,sizeof(a));
  6. }
  7. int * operator [](int x)
  8. {
  9. return a[x];
  10. }
  11. matrix operator *(matrix b)
  12. {
  13. matrix c;
  14. for(int i=0;i<l;i++)
  15. for(int j=0;j<l;j++)
  16. for(int k=0;k<l;k++)
  17. c[i][k]=(c[i][k]+1ll*a[i][j]*b[j][k])%w;
  18. return c;
  19. }
  20. }S,T;

高斯消元

专题总结


组合数学

不可重组合数学(留坑)

可重组合数学

可重排列

个元素,其中第个元素有个,求全排列数。

即先全排列,然后给每个元素编号。

可重组合

个元素,每个元素可选无穷多个,一共选个,求方案数。

假如第个元素选个,那么原问题变为
,那么
此时,即每个元素都要选。所以等于在个元素(个空位)间放个隔板。

卡特兰数

前几个数:
好像我只会用它打表找规律
公式:


应用:

数论分块

求解
据观察,的取值只有个。
定理:若有一个值,那么数论分块中其同值上界为
即在这一段区间内,的取值是一样的,于是可计算整块贡献。

  1. int l = 1 , r , ans = 0;
  2. while(l<=n){
  3. r = n/(n/l);
  4. ans += (r-l+1)*(n/i);
  5. l = r + 1;
  6. }

莫比乌斯反演

莫比乌斯反演有两种形式。。。

第一种

如果我们有函数,以及,并且有


那么,我们就有

第二种

如果我们有函数,以及,并且有:


其中是我们限定的一个范围
那么我们可以得到:

至于函数,叫做莫比乌斯函数。
其定义为:


性质?
,而往后面的所有都有

或者是

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注