- 博客(15)
- 收藏
- 关注
原创 算法竞赛——组合数看这一篇就够了
方法适用场景核心优势局限性递推(杨辉三角)ab≤2000ab≤2000,模数任意实现简单、查询快范围小阶乘+逆元a≤105a≤105,模数为质数范围大、查询快依赖质数模数卢卡斯定理aba, bab极大,模数为小质数支持超大组合数模数必须是质数高精度需要精确值,无模数限制结果绝对精确代码复杂、效率一般。
2025-09-30 07:28:26
1853
原创 FFT快速傅里叶变换——这一篇就够了
FFT的核心是"用分治思想+单位根性质,将系数乘法的高复杂度转换为点值乘法的低复杂度"。位逆序置换:优化递归到迭代的过程蝶形运算:利用单位根快速合并分治结果逆变换修正:将点值转换回系数每次想要拍出 FFT 板子的时候想这几个步骤就可以轻松写出FFT 的本质是多项式相乘我们需要在系数表示法和点表示法间相互转换。已知nnn个不共线的点可以唯一确定一个n−1n - 1n−1次多项式。我们在计算时需要带入特殊的点也就是不同的nnn次单位根。
2025-09-29 09:38:15
1023
原创 一篇搞懂栈与队列核心原理
队列是一种“双端”结构,元素从一端(称为“队尾”)添加,从另一端(称为“队首”)移除。可以想象商店的排队:最先加入队伍的人将最先得到服务。因其简洁性及在算法中的广泛应用(如栈用于深度优先搜索,队列用于广度优先搜索)而脱颖而出。可以想象一叠盘子:你只能将新盘子放在最上面,或者拿走最上面的盘子。线性数据结构——元素按顺序排列——是编程的基石。(常数时间),因为它们只修改或访问栈顶元素。栈是一种“单端”结构,元素的添加和移除都在。最后插入的元素将最先被移除。最先插入的元素将最先被移除。——它们只修改队首或队尾。
2025-09-29 09:20:17
672
原创 一篇搞懂高精度算法
存储:逆序动态数组分段存储,适配手工运算的低位优先逻辑;基础:实现输入、输出、比较,为运算提供支撑;运算加法 / 减法:逐位处理 + 进位 / 借位;乘法:逐位相乘 + 错位累加 + 进位;除法:倍增试商优化,快速找到最大有效系数。
2025-09-29 08:16:23
913
原创 树堆(Treap)
是一种兼具灵活性与高效性的数据结构,它将的有序性与的自平衡能力相结合。这种混合设计确保了插入、删除以及排名查询、前驱/后继查找等高级操作在下高效执行。
2025-09-29 08:16:10
2088
原创 一篇搞懂BSGS与扩展BSGS算法
朴素BSGS:适用于aaa与ppp互质的离散对数问题,时间复杂度OpOp,核心是分块查找;扩展BSGS:通过逐步约分处理aaa与ppp不互质的情况,递归转化为朴素BSGS可解的形式,时间复杂度仍为OpOp;应用场景:数论题目中涉及“求指数”的问题,如模方程求解、密码学中的离散对数问题(OI中常见于NOIP提高组或省选难度题目)
2025-09-28 15:56:40
906
原创 快速乘与快速幂
在编程竞赛和数学计算中,处理大数经常会遇到一个关键问题:溢出。即使使用C++的long long类型(大约能存储9.2e18的值),大数相乘或计算高次幂也很容易超出这个限制。并非传统意义上的"快速",而是为处理大数值提供了安全的替代方案。
2025-09-28 12:09:31
1893
原创 质数筛法详解
在信息学竞赛中,高效获取一定范围内的质数是解决数论问题的基础。筛法(Sieve)是实现这一目标的核心技术,本文将详细讲解两种经典筛法 —— 埃拉托斯特尼筛法(Eratosthenes Sieve)和欧拉筛(Euler Sieve,又称线性筛)的原理、实现及优化思路。
2025-09-28 10:41:33
1098
原创 质数与约数
质数(素数)是指大于111的自然数中,除了111和自身外没有其他正因数的数。即对于n1n > 1n1,若不存在2≤dn2≤dn使得d∣nd \mid nd∣n,则nnn为质数。
2025-09-28 09:51:54
902
原创 一篇让你搞懂二分
二分法(Binary Search)是一种高效的查找算法,其核心原理围绕 “逐步缩小搜索范围” 展开,通过反复将搜索区间 “对半分割”,快速定位目标值。它依赖答案集合的单调性来求解最优解,是典型的 “分治思想” 应用,时间复杂度低至。(例如:“在有序数组中找大于等于 target 的最小数最靠左的位置”、“最少需要多少资源能完成任务”)。的最大数最靠右的位置”、“最多能分配多少资源仍满足条件”)。位),能确保区间缩小到足够小,最终结果更可靠。这是避免无限循环的核心!(小数点后 $6 $位),若设。
2025-09-28 07:15:50
918
原创 对拍-算法竞赛必备
在竞赛过程中,确保正确性至关重要——特别是在优化超越暴力解法时。对拍是一种强大的技术,用于验证优化解决方案在各种输入下与可信的暴力解法行为一致,还可以获得数据借此debug。以下是实施此流程的逐步流程。
2025-09-27 19:50:26
506
原创 STL(标准模板库)
STL(标准模板库)的容器是 C++ 高效编程的 “利器”—— 它们封装了常用数据结构的实现,让我们无需重复 “造轮子”,只需根据场景选对 “工具”,就能轻松应对各类数据存储与操作需求。下面为你拆解最核心的 STL 容器,包括命名方式、访问方式等关键信息,帮你快速匹配「场景 ↔ 容器」。
2025-09-27 19:38:04
633
1
原创 OI竞赛全攻略
本文是一个信息学奥赛(OI)算法知识库,全面收录了OI竞赛所需的各类核心算法与知识点。内容涵盖:前置知识(如STL、时间复杂度);基础算法(二分查找、排序、高精度等);搜索算法(BFS/DFS及优化);数据结构(栈/队列、堆、线段树等);动态规划(背包、树形DP等);图论(最短路、网络流等);计算几何(凸包、扫描线等);数学知识(数论、组合数学、FFT等)。每个分类都包含详细的子项,部分算法配有外部链接参考,是OI选手系统学习与备赛的实用资源库。
2025-09-27 18:28:22
2805
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅