整除
(p|q~,~p mid q)
算术基本(唯一分解)定理 : (prod p_i^{c_i})
prime
埃氏筛O(nloglogn)&欧拉筛O(n)
密度: (dfrac{x}{ln(x)})
gcd & lcm
(exists x,y s.t.ax+by=gcd(a,b))
exgcd
(left{ egin{array}{lrc} ax+by=gcd(a,b)\ bx'+(a\%b)y'=gcd(b,a\%b)\a\%b=a-b*lfloorfrac ab floor\gcd(a,b)=gcd(b,a\%b) end{array} ight.Rightarrowleft{egin{array}{lrc} x=y'\y=x'-y'lfloorfrac ab floor end{array} ight.)
(ax+by=c~~Rightarrow~~a(x+b/g)+b(y-a/g)=c)
同余
(aequiv b~(mod~~m))
逆
(a^{-1}~:~a*a^{-1}equiv 1~(mod~~m))
O(n) , 费马小定理 , exgcd
CRT
(left{egin{array}{cc}xequiv a_1~(mod~~m_1)\xequiv a_2~(mod~~m_2)\cdots\xequiv a_n~mod~~m_n)\end{array} ight.)
普通
(m_i)之间保证两两互质
(x=sumlimits_{i=1}^nM_ia_it_i ~(mod~~M))
ex
(m_i)之间不保证两两互质
考虑两个式子(left.egin{array}{cc}xequiv a_1(mod m_1)Leftrightarrow x=k_1m_1+a_1\x=a_2(mod m_2)Leftrightarrow x=k_2m_2+a_2end{array} ight}Rightarrow k_2m_2+(-k_1)m_1=(a_1-a_2))
exgcd
(x=k_1m_1+a_1pmod{lcm(m_1,m_2)})
Lucas 定理
普通
(inom nmequivinom{n/p}{m/p} imesinom{n\%p}{m\%p}pmod p)
扩展
首先
(egin{cases}inom nmequiv a_1pmod{p_1^{k_1}}\inom nmequiv a_2pmod{p_2^{k_2}}\~~~~~~~~vdots\inom nmequiv a_cpmod{p_c^{k_c}}\end{cases})
如当(p=3,k=2,n=19)时
(egin{split}n!=&1·2cdots19\=&(1·2·4·5·7·8·10·11·13·14·16·17)·(3·6·9·12·15·18)·19\=&(1·2·4·5·7·8·10·11·13·14·16·17)·3^6(1·2·3·4·5·6)·19end{split})
可以递归进行计算。
前面一部分是以(p^k)为周期的,所以只需要计算最后不满足一个周期的数是哪些就可以了
欧拉函数
(n)以内与(n)互质的数的个数
(varphi(n)=nprodlimits_{i=1}^c(1-dfrac 1{p_i}))
证明:exCRT式合并
性质
- 欧拉定理:对于互质的$a,m,a^{varphi(m)} equiv 1 pmod m $
- 小于(n)且与(n)互质的数的和((nge2)):$S = n * dfrac{varphi(n)}{2} $
- (displaystylesum_{d|n} varphi(d) = n )
原根
阶
设(a,p)是整数,(gcd(a,p)=1),那么使(a^nequiv1(mod p))立的最小正整数(n)叫做(a)模(p)的阶,记做(delta_p(a))
原根
设(p)是正整数,(a)是整数,若(delta_p(a~mod~p))的阶等于(varphi(p)),则称(a)为模(p)的一个原根
BSGS
求解形如 (A^xequiv Bpmod C) 的问题
普通
(C)是质数
设(m=lceilsqrt C ceil),则(x=km-b),即原式为(A^{km}equiv B*A^bpmod C)
我们对于每一个 (b),求出等式右边的值,并存入一个hash表中
据欧拉定理,(x) 显然不超过 (m)
复杂度(O(sqrt p))
exBSGS
(gcd(A,C)) 任意
设(d=gcd(A,C),A=a*d,B=b*d,C=c*d)
注意若(d mid B)显然无解
左右同时除以(d),即(a*A^{x-1}equiv bpmod c)
递归,直到(d=1)
之后(BSGS)即可
复杂度(O(sqrt nlog(n)))
积性函数
(displaystylevarphi(n)=n*prod_{i=1}^m(1-dfrac{1}{p_i}))
(displaystylesum_{d|n} mu(d) = [n=1])
(id_k,epsilon,sigma_k)
卷积
(displaystyle f*g=sum_{d|n}f(d)g(dfrac{n}{d}))
(mu*id_0=epsilon)
(varphi*id_0=id_1)
证明:
(displaystyle{egin{aligned}&n\=&sum_{i=1}^nsum_{d|n}[gcd(i,n)=d]\=&sum_{d|n}sum_{i=1}^{frac nd}[gcd(i,frac nd)=1]\=&sum_{d|n}varphi(frac nd)\=&(id_0*varphi)(n)end{aligned}})
筛积性函数
Min_25:质因子分类
反演
(displaystyle{sum_{i=1}^nsum_{j=1}^n [gcd(i,j)==d]\sum_{i=1}^nsum_{j=1}^n gcd(i,j)\sum_{i=1}^nsum_{j=1}^m[gcd(i,j)in prime]\sum_{i=1}^nsum_{j=1}^m gcd(i,j)\sum_{i=1}^nsum_{j=1}^m lcm(i,j)\prod_{i=1}^nprod_{j=1}^m gcd(i,j)\prod_{i=1}^nprod_{j=1}^mdfrac{lcm(i,j)}{gcd(i,j)}\sum_{i=1}^nsum_{i=1}^mvarphi(ij)\sum_{i=1}^nsum_{j=1}^md(ij)\sum_{i=1}^Asum_{j=1}^Bsum_{k=1}^Cd(ijk)\prod_{i=1}^Aprod_{j=1}^Bprod_{k=1}^Cleft(egin{array}{cc}dfrac{lcm(i,j)}{gcd(i,k)}end{array} ight)^{f(type)}})
群论
群
给定一个集合(G={a,b,c,dots})和集合(G)上的二元运算,并满足:
-
封闭性:(forall a,bin G, exists cin G, a*b=c)
-
结合律:(forall a,b,cin G, (a*b)*c=a*(b*c))
-
单位元:(exists ein G,forall ain G,a*e=e*a=a)
-
逆元:(forall ain G,exists bin G, a*b=b*a=e,)记(b=a^{-1})
则称集合G在运算(*)之下是一个群,简称G是群。
置换,置换群,循环
(Z_k) ((K)不动置换类)
设(G)是(1dots n)的置换群,若(K)是(1dots n)中某个元素,(G)中使(K)保持不变的置换的全体,记以(Z_k),叫做(G)中使(K)保持不动的置换类
(E_k)(等价类)
设(G)是(1dots n)的置换群,(K)是(1dots n)中某个元素,(K)在(G)作用下的轨迹,记作(E_k),即(K)在(G)的作用下所能变化成的所有元素的集合
轨道-稳定核定理:
(|E_k|*|Z_k|=|G|)
(Burnside)引理
互异的组合状态的个数(displaystyle L=dfrac{1}{|G|}sum_{i=1}^{|G|}D(a_i))((D(a_i)) 表示在置换(a_i)下不变的元素的个数)
(Pacute{o}lya)定理
设G是p个对象的一个置换群,用m种颜色涂染p个对象,gi的循环节数为c(gi),则不同染色方案为(displaystyle L=dfrac{1}{|G|}sum_{i=1}^{|G|}m^{c_i})
类欧几里德算法
基础
设(displaystyle f(a,b,c,n)=sum_{i=0}^nlfloordfrac{ai+b}c floor)
-
(age c~~or~~bge c)
(displaystyleegin{split}f(a,b,c,n)=&sum_{i=0}^nlfloordfrac{ai+b}c floor\=&sum_{i=0}^nlfloordfrac{(clfloordfrac ac floor+a\%c)i+(clfloordfrac bc floor+b\%c)}c floor\=&dfrac{n(n+1)}2lfloordfrac ac floor+(n+1)lfloordfrac bc floor+f(a\%c,b\%c,c,n)end{split})
-
(a<c,b<c)
令(m=lfloorfrac{an+b}c floor),
(displaystyleegin{split}f(a,b,c,n)=&sum_{i=0}^nlfloordfrac{ai+b}c floor\=&sum_{i=0}^nsum_{j=0}^{lfloorfrac{ai+b}c floor-1}1\=&sum_{j=0}^{m-1}sum_{i=0}^n[j<lfloorfrac{ai+b}c floor]end{split}\ j<lfloordfrac{ai+b}c floorLeftrightarrow j+1leqlfloordfrac{ai+b}c floorLeftrightarrow j+1<dfrac{ai+b}cLeftrightarrow jc+c-b-1<aiLeftrightarrowlfloordfrac{jc+c-b-1}a floor<i\ displaystyleegin{split}f(a,b,c,n)=&sum_{j=0}^{m-1}sum_{i=0}^n[j<lfloorfrac{ai+b}c floor]\=&sum_{j=0}^{m-1}sum_{i=0}^n[lfloordfrac{jc+c-b-1}a floor<i]\=&sum_{j=0}^{m-1}n-lfloordfrac{jc+c-b-1}a floor\=&nm-f(c,c-b-1,a,m-1)end{split})
递归,(O(log n))
扩展
如 (displaystylesum_{i=0}^{n}{lfloor frac{ai+b}{c} floor}^2,sum_{i=0}^{n}ilfloor frac{ai+b}{c} floor)
加油
一般就是考虑转换条件,更改限制,递归进行