快速幂与快速乘模板
1234567891011121314151617181920212223242526ll mul_mod(ll a,ll b,ll m){ ll ans=0; a%=m; while(b>0){ if(b&1)&
1234567891011121314151617181920212223242526ll mul_mod(ll a,ll b,ll m){ ll ans=0; a%=m; while(b>0){ if(b&1)&
题意给你A,B求$A^B$的所有因子的和模9901的值 分析将A进行唯一分解,因为A在$5\times1e7$,所以A的质因子在$1e4$以内,我们预处理出$1e4$的素数表,然后对每个A计算其质因子的系数,又由生成函数可知,$A^B$的所有质因数的和为:$$sum=(1+p_1
定义对于正整数a和m,如果有ax≡1(mod m),那么把这个同余方程中的最小正整数解叫做a模m的逆元。 前提求$a(mod m)$意义下的逆元,要求a与m互质,否则不存在乘法逆元 欧拉定理欧拉函数O(√n)求单个数的欧拉函数对正整数n,欧拉函数是少于或等于n的数中与n互质的数的
原题 题意给定一个n,然后让你从1-n中选出某些数乘起来,使得乘积最大,并且乘积必须是完全平方数 分析首先我们预处理出来1e7以内的所有素数,并且预处理出,n在1e7以内的所有n!的结果,存在fac[n]中。根据n!素因子分解中素数p的幂为 [n/p]+[n/(p^2)]+[n/
原题 题意给定n个数列,给你一个k,问从每个数列中取一个数,这些数的和,满足mod k不等于0,且这个和的值最大为多少? 分析首先:这个数列给出x_0,a,b,c四个参数,有$$x_{n+1}=(ax_n+b)\%c$$定会形成循环节,但要注意的是*这个循环节可能前几个数值不在循
题意给定一个三角形,求每个角的两条三等分线相交的三个点的坐标。 分析计算几何基础,已知三个点的坐标,由向量可以求出角度,并直接旋转三条边得到六条三等分线,直接两两求交点就行了。 123456789101112131415161718192021222324252627282930
题意有N堆纸牌,每堆上有若干张,但纸牌总数必为N的倍数。可以在任一堆上取若于张纸牌,然后移动。移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为N-1的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出
原题 题意给定p和k,p是大于2的素数。找满足f(kx mod p)=k*f(x) mod p的方案数,其中f(1,2,3,4……p-1)->{1,2,3,4……p-1}. 例如p=3,k=2的方案数有三种: f(0) = 0, f(1) = 1, f(2) = 2.
定义后缀数组:后缀数组SA是一个一维数组,它保存1..n的某个排列SA[1],SA[2],……,SA[n],并且保证 Suffix(SA[i])<Suffix(SA[i+1])。每个数组中存储的值为字典序为i的原字符串后缀在原串中的位置。