
数学
Cambrain_
菜
展开
-
矩阵快速幂
矩阵快速幂是一种高效计算矩阵幂的方法。它利用了矩阵的幂运算具有分治性质的特点,可以将矩阵的幂运算时间复杂度从 O(n)降低到 O(logn)。可用于解决线性递推式问题。经典的斐波那契数列fn=fn-1+fn-2。当n很大时,你无法快速的计算第n项的值。可以构造矩阵通过矩阵快速幂得到Fn矩阵 a(0,0) 即为 fnCodematrix c;c.init();i原创 2023-08-04 01:42:16 · 162 阅读 · 0 评论 -
AcWing 202. 最幸运的数字
【代码】AcWing 202. 最幸运的数字。原创 2023-08-03 01:28:25 · 252 阅读 · 0 评论 -
扩展欧几里得
扩展欧几里得算法,简称 exgcd,一般用来求解不定方程,求解线性同余方程,求解模的逆元等引理:存在 x , y 使得 gcd(a,b)=ax+by。原创 2023-08-03 00:20:46 · 98 阅读 · 0 评论 -
强(矩阵快速幂)
Clz:就是给你一个长度为 n 的序列,每个数只能取 0,1,2,那你连续取三个数必然有两个相等……现在粉兔问你:有多少个长度为 n 的序列满足粉兔的要求。请对 19260817 取模。Marser:就是一个序列,对于每一个连续三元组都要满足其中至少有两个相等。形如:f[n]=a*f[n-1]+b*f[n-2]+c。一行一个正整数n(3≤n≤1018)形如:f[n]=c^n-f[n-1]Lh:粉兔你教我一下抽屉原理吧……Lh:等等你梭啥,再说一遍。一行一个整数,含义如题。可用矩阵乘积形式表示。原创 2023-01-10 18:24:46 · 354 阅读 · 0 评论 -
Lucky Chains(欧拉筛,算数基本定理)
【代码】Lucky Chains(欧拉筛,算数基本定理)原创 2023-01-05 21:08:38 · 378 阅读 · 0 评论 -
Hossam and Trainees(分解质因数,欧拉筛)
【代码】Hossam and Trainees(分解质因数,欧拉筛)原创 2023-01-05 19:47:29 · 229 阅读 · 0 评论 -
Koxia and Number Theory(数论)
【代码】Koxia and Number Theory(数论)原创 2023-01-01 20:24:34 · 1064 阅读 · 0 评论 -
Row GCD(gcd更相减损术,1600)
给定a,b数组,求gcd(a1+bj,a2+bj,a3+bj,...,an+bj);可以预处理出G=gcd(a2-a1,a3-a2...an-an-1);每次计算gcd(a1+bj,G)即可。时间复杂度(nlogn)考虑到每个数都增加k,最大公因数有这样的性质。gcd满足交换律,可以从序列任何位置开始计算。原创 2022-11-14 23:05:24 · 267 阅读 · 0 评论 -
Strange Function(数论,容斥,1600)
对答案的贡献即为x*cnt.不难发现,当lcm(1,2,3,....x-1)大于n时cnt为0,对答案无贡献。因此x大概枚举到100即可.cnt=n/lcm(1,2,3,...,x-1)-n/lcm(1,2,3,...x) (容斥原理)i可以整除lcm(1,2,3,...,x-1),i不可整除lcm(1,2,3,...,x);原创 2022-11-14 13:35:08 · 160 阅读 · 0 评论 -
Product 1 Modulo N(数论,1600)
1 则mul%n!如果选择x则乘积mul和n不互质。原创 2022-11-11 04:15:00 · 308 阅读 · 0 评论 -
Moderate Modular Mode(构造,数论,1600)
如果n原创 2022-11-10 17:00:51 · 482 阅读 · 0 评论 -
X-Magic Pair(数论,1600)
【代码】X-Magic Pair(数论,1600)原创 2022-11-09 23:50:33 · 236 阅读 · 0 评论 -
Factorial Divisibility(数论,1600)
也就是说对于正整数x,所有小与x的数k的阶乘和,当每个cnt[k]原创 2022-11-08 23:35:15 · 353 阅读 · 0 评论 -
Let the Flames Begin(约瑟夫环)
【代码】 Let the Flames Begin(约瑟夫环)原创 2022-11-06 21:10:36 · 439 阅读 · 0 评论 -
Spare Tire(容斥原理)
【代码】 Spare Tire。原创 2022-11-06 20:36:32 · 135 阅读 · 0 评论 -
Spare Tire(容斥原理)
【代码】Spare Tire(容斥原理)原创 2022-10-30 23:06:44 · 203 阅读 · 0 评论 -
欧拉函数
【代码】 欧拉函数。原创 2022-09-22 21:26:38 · 289 阅读 · 1 评论 -
Catalan数的求法
【代码】Catalan数的求法。原创 2022-09-20 10:49:49 · 112 阅读 · 0 评论 -
求乘法逆元的几种方法
【代码】求乘法逆元的几种方法。原创 2022-09-19 17:17:11 · 191 阅读 · 0 评论 -
求解组合数
【代码】求解组合数。原创 2022-09-19 16:36:33 · 170 阅读 · 0 评论 -
位运算基础
位运算:位运算就是基于整数的二进制表示进行的运算。由于计算机内部就是以二进制来存储数据,位运算是相当快的。基本的位运算共 6种,分别为按位与、按位或、按位异或、按位取反、左移和右移。与,或,异或tip:异或运算的逆运算是他本身 e.g. a^b^b=a;取反取反是对一个数 进行的位运算,即单目运算.它是将数的二进制补码中的0和1取反,符号为~.补码在二进制表示下,正数和 的补码为其本身,负数的补码是将其对应正数按位取反后加一。左移和右移 表示将 num 的二进制表示向左移动 i 位所得的值。原创 2022-06-15 09:01:21 · 191 阅读 · 0 评论 -
7778: 【快速幂】a^b
题目描述求 a 的 b 次方对 p 取模的值,其中 1≤a,b,p≤109输入三个用空格隔开的整数a,b和p。输出一个整数,表示ab mod p的值。样例输入Copy2 3 9样例输出Copy8快速幂求a^bint kspow(int a,int b){ int ans=1; while(b) { if(b&1) ans*=a; a*=a; b>>=1;..原创 2022-02-23 14:34:49 · 361 阅读 · 0 评论 -
素数和约数的一些算法
1 判断素数bool is_prime(int n) //判断素数 O(sqrt(n)){ if(n<2) return false; for(int i=2;i<=n/i;i++) if(n%i==0) return false; return true;}2 分解质因数void divide(int n) //分解质因数 O(sqrt(n)){ for(int i=2;i<=n/i;i++)原创 2022-05-28 23:09:04 · 209 阅读 · 0 评论