
算法数学基础
文章平均质量分 61
算法数学基础
hnjzsyjyj
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
洛谷 B3866:[GESP202309 二级] 数字黑洞
将三位数的各位,通过取整求余拆解出来后排序,然后构建最大最小值。原创 2025-08-18 20:25:53 · 216 阅读 · 0 评论 -
克莱姆法则(Cramer‘s Rule)求解两条直线交点坐标的步骤
克莱姆法则(Cramer's Rule)求解两条直线交点坐标的步骤原创 2025-08-05 22:55:00 · 422 阅读 · 0 评论 -
AcWing 3690:求交点 ← 复旦大学考研机试题 + 克莱姆法则
已知两条直线各两个点的坐标,利用克莱姆法则计算它们的交点坐标。原创 2025-08-05 22:46:24 · 1261 阅读 · 0 评论 -
洛谷 B3841:[GESP202306 二级] 自幂数判断
两个重要步骤:1.求一个数的位数 n。2.求次数各位的 n 次幂之和。原创 2025-08-03 09:18:52 · 342 阅读 · 0 评论 -
洛谷 B4036:[GESP202409 二级] 数位之和 ← 求余+取整
简单的求余、取整技巧的应用。原创 2025-08-03 07:29:45 · 173 阅读 · 0 评论 -
AcWing 868:筛质数 ← 欧拉筛法
欧拉筛法(又称线性筛法)是一种高效筛选素数的算法,其核心特点是保证每个合数仅被其最小质因子筛除一次,从而实现 O(n) 的时间复杂度。欧拉筛法适用于大规模素数筛选(如 1e7 以上)的场景。原创 2025-07-27 02:30:00 · 490 阅读 · 0 评论 -
洛谷 P1217:[USACO1.5] 回文质数 Prime Palindromes
在算法竞赛或编程问题中,若需处理回文质数,一种方法是直接将数的范围限制在≤7位,避免无效计算。因为不存在大于 10⁷ 的回文质数,最大回文质数为 9989899。另一种方法为欧拉筛法(又称线性筛法)结合回文判断求解。原创 2025-07-26 13:36:09 · 350 阅读 · 0 评论 -
洛谷 P1307:[NOIP 2011 普及组] 数字反转
注意:如下代码中的整型变量 t 要么放在 main 函数外,要么在 main 函数内初始化为 0,否则大部分样例过不了。这是因为,main 函数内的整型变量会初始化为随机数。原创 2025-07-26 01:15:00 · 339 阅读 · 0 评论 -
洛谷 P13014:[GESP202506 五级] 最大公因数
● 性质:gcd(a,)=gcd(a, b-a), gcd(a,b,c)=gcd(a, b-a, c-b)原创 2025-07-13 22:04:47 · 526 阅读 · 0 评论 -
洛谷 P7071:[CSP-J2020] 优秀的拆分 ← 进制转换
● 本题是判断一个十进制正整数能否分解为若干个不同的 2 的正整数次幂和的问题,本质上就是一个进制转换问题。本题给出的数据最大为 10^7,对应的二进制数为 100110001001011010000000(总共 24 位,最高位贡献为 2^23)。原创 2021-08-19 10:33:44 · 2619 阅读 · 1 评论 -
斜线投影几何分割公式 h = rx·ry/(rx+ry) 的推导方法
斜线投影几何分割公式 h = rx·ry/(rx+ry)原创 2025-07-04 21:18:31 · 504 阅读 · 0 评论 -
AcWing 415:栈 ← 卡特兰数
h[n]=h[n−1]*(4*n−2)/(n+1), (n≥2, h[0]=h[1]=1)原创 2025-06-20 04:30:00 · 704 阅读 · 0 评论 -
洛谷 U140713:卡特兰数 ← 模板题
卡特兰数(Catalan number)是组合数学中一个常出现在各种计数问题中的数列。若从第 0 项开始,则卡特兰数列 h[n] 为:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, …。原创 2025-06-20 03:00:00 · 449 阅读 · 0 评论 -
扩展欧拉定理代码模板
扩展欧拉定理在算法竞赛中的应用非常广泛。原创 2025-05-28 14:01:15 · 284 阅读 · 0 评论 -
欧拉定理优化大数幂取模运算 a^b mod n
利用欧拉定理优化大数幂取模运算 a^b mod n,时间复杂度可从O(b) 降至 O(log(φ(n)))。原创 2025-05-28 06:15:10 · 350 阅读 · 0 评论 -
欧拉定理:若 gcd(a,n)=1,则 a^φ(n)≡1(mod n)。
欧拉定理:若 gcd(a,n)=1,则 a^φ(n)≡1(mod n)。原创 2025-05-27 22:06:38 · 388 阅读 · 0 评论 -
洛谷 P5091:【模板】扩展欧拉定理
● 通过字符串解析大指数,并应用欧拉定理降幂,解决大指数的溢出问题。原创 2025-05-27 18:05:50 · 438 阅读 · 0 评论 -
对于“优化版筛法”实现的欧拉函数代码的理解
欧拉函数 φ(n) 是数论中的重要函数,用于计算 1~n 中与 n 互质的正整数的个数。特别地,当 n=1 时,φ(1)=1。欧拉函数的计算公式:若 N 的质因数分解为 N=p₁ᵏ¹×p₂ᵏ²×...×pₘᵏᵐ,则 φ(N)=N×(1-1/p₁)×(1-1/p₂)×...×(1-1/pₘ)。其中,p₁,…,pₘ,是 N 的所有质因数。原创 2025-05-24 07:22:47 · 509 阅读 · 0 评论 -
lanqiaoOJ 4324:求所有素因数 ← 欧拉函数
由于数超大,需配合使用 #define int long long 与 signed main() { }。原创 2025-05-24 03:30:00 · 455 阅读 · 0 评论 -
lanqiaoOJ 4330:欧拉函数模板
欧拉函数的计算公式:若 N 的质因数分解为 N=p₁ᵏ¹×p₂ᵏ²×...×pₘᵏᵐ,则 φ(N)=N×(1-1/p₁)×(1-1/p₂)×...×(1-1/pₘ)。其中,p₁,…,pₘ,是 N 的所有质因数。原创 2025-05-23 22:41:55 · 390 阅读 · 0 评论 -
对于“质因数分解法”实现的欧拉函数代码的理解
欧拉函数的计算公式:若 N 的质因数分解为 N=p₁ᵏ¹×p₂ᵏ²×...×pₘᵏᵐ,则 φ(N)=N×(1-1/p₁)×(1-1/p₂)×...×(1-1/pₘ)。其中,p₁,…,pₘ,是 N 的所有质因数。原创 2025-05-23 13:00:59 · 472 阅读 · 0 评论 -
欧拉函数简介及代码实现
质因数分解是欧拉函数计算的核心步骤。原创 2025-05-22 13:10:06 · 289 阅读 · 0 评论 -
洛谷 P2303:[SDOI2012] Longge 的问题 ← 欧拉函数
欧拉函数 φ(n) 是数论中的重要函数,用于计算 1~n 中与 n 互质的正整数的个数。特别地,当 n=1 时,φ(1)=1。原创 2025-05-22 13:04:45 · 767 阅读 · 0 评论 -
AcWing 876:快速幂求逆元 ← 费马小定理
● 由于 p 是质数且 gcd(n,p)=1,所以可以用费马小定理求解。● 在此约束下,特别是当模数 p 特别大的时候,由于快速幂的加持,更优先推荐使用费马小定理求逆元。原创 2025-05-21 21:54:00 · 360 阅读 · 0 评论 -
lanqiaoOJ 4185:费马小定理求逆元
● 本题本质是求解同余方程 nx≡1(mod p) 的解。● 由于 p 是质数且 gcd(n,p)=1,所以可以用费马小定理求解。在此约束下,特别是当模数 p 特别大的时候,由于快速幂的加持,更优先推荐使用费马小定理求逆元。原创 2025-05-21 21:22:22 · 507 阅读 · 0 评论 -
洛谷 B3840:[GESP202306 二级] 找素数
素数(又称质数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。原创 2025-05-21 18:16:33 · 204 阅读 · 0 评论 -
“即时取模”的快读 → 数论
“即时取模”的快读是一种在输入大整数时直接进行取模运算的优化技术,常用于处理需要大数运算但最终结果需取模的场景(如数论题目)。其核心思想是在逐位读取数字时同步计算模值,避免存储完整的大数。原创 2025-05-17 07:18:12 · 696 阅读 · 0 评论 -
洛谷 P2613:【模板】有理数取余 ← 费马小定理 / exgcd
“即时取模”的快读是一种在输入大整数时直接进行取模运算的优化技术,常用于处理需要大数运算但最终结果需取模的场景(如数论题目)。其核心思想是在逐位读取数字时同步计算模值,避免存储完整的大数。“即时取模”的快读代码如下所示。原创 2025-05-17 06:56:48 · 598 阅读 · 0 评论 -
洛谷 P1375:小猫 ← 预处理模逆元 + 卡特兰数
卡特兰数(Catalan number)是组合数学中一个常出现在各种计数问题中的数列。若从第 0 项开始,则卡特兰数列 h[n] 为:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, …。原创 2025-05-16 15:37:31 · 920 阅读 · 0 评论 -
“乘法逆元”的常见求解方法 ← exgcd+费马小定理+逆元预处理
定理:inv[i]=(p-p/i)*inv[p%i]%p,其中 p 为质数。原创 2025-05-16 11:35:04 · 687 阅读 · 0 评论 -
lanqiaoOJ 652:一步之遥 ← 扩展欧几里得定理
● 本题本质是求解 97x+127y=1。原创 2025-05-14 22:04:07 · 418 阅读 · 0 评论 -
AcWing 204:表达整数的奇怪方式 ← 扩展中国剩余定理
扩展中国剩余定理(Extended Chinese Remainder Theorem,ExCRT)是中国剩余定理(Chinese Remainder Theorem,CRT)的推广形式,用于求解模数不互质的线性同余方程组。当然,扩展中国剩余定理也能用于求解模数互质的线性同余方程组。原创 2025-05-14 15:10:51 · 562 阅读 · 0 评论 -
洛谷 P1082:[NOIP 2012 提高组] 同余方程 ← 求逆元
裴蜀定理指出:若整数 a 和 b 互质(即 gcd(a,b)=1),则存在整数 x 和 y,使得 ax+by=1。此时,x 即为 a 模 b 的乘法逆元,即满足 ax≡1(mod b)。若解 x 为负数,通过 (x mod T + T) mod T 调整为最小正整数解,其中 T=b/gcd(a,b) 为解的周期。原创 2025-05-12 22:07:21 · 619 阅读 · 0 评论 -
扩展欧几里得算法简介及代码实现
若 gcd(a,b) |c,即 ax+by=c 有解,先用扩展欧几里得算法求出 ax+by=gcd(a,b) 的特解 (x0,y0),再乘以 c/gcd(a,b) 得到 ax+by=c 的特解:x'=x0*c/gcd(a,b),y'=y0*c/gcd(a,b)。原创 2025-05-12 08:28:51 · 1016 阅读 · 0 评论 -
洛谷 P1007:独木桥
● 第 i 个士兵有两种撤离的方法,时间分别为 L+1-a[i] 及 a[i]。据此,最大时间就是最大的 max(L+1-a[i], a[i]),最小时间就是最大的 min(L+1-a[i], a[i]))。原创 2025-05-10 17:22:23 · 579 阅读 · 0 评论 -
AcWing 877:扩展欧几里得算法
扩展欧几里得算法用于求解 ax+by=gcd(a,b) 的整数解 (x,y)。原创 2025-05-10 07:37:36 · 542 阅读 · 0 评论 -
经典扩展欧几里得算法求逆元的局限性及优化
经典扩展欧几里得算法 (exgcd) 通过递归求解方程 ax+by=gcd(a,b) 来获得逆元,其时间复杂度为O(log min(a,b))。虽然理论效率较高,但在大数据量(如 a,b≥10^18)或高频调用场景下,递归实现的常数因子和栈开销会导致超时。原创 2025-05-09 06:34:06 · 228 阅读 · 0 评论 -
在模 p 运算中,将负数 x 转换为对应的正数,执行 (x % p + p) % p 操作即可。
在模 p 运算中,将负数 x 转换为对应的正数,执行 (x % p + p) % p 操作即可。原创 2025-05-08 20:27:55 · 237 阅读 · 0 评论 -
洛谷 P3811:【模板】模意义下的乘法逆元
● 在 C++ 中,若输入数据个数大于 10^5 时,推荐使用 scanf 而不是 cin 输入数据。这是因为 scanf 通常比 cin 更快。原创 2025-05-08 20:10:13 · 975 阅读 · 0 评论 -
洛谷 P1516:青蛙的约会 ← 裴蜀定理求解 ax≡c(mod b)
通过模运算可将特解调整为最小非负解 xmin=(x0 mod T+T) mod T,其中 T=b/gcd(a,b) 为解的周期。相应地,若 ax+by=c 有整数解,则其最小非负解 xmin=(x0•c/gcd(a,b) mod T+T) mod T。原创 2025-05-08 05:00:00 · 352 阅读 · 0 评论