邝斌ACM算法模板2018:字符串处理与数学算法
需积分: 50 16 浏览量
更新于2024-07-18
收藏 2.66MB PDF 举报
“kuangbin的ACM模板(2018年7月新版).pdf”是邝斌大神针对ACM竞赛精心编写的算法模板,包含了2018年7月的更新,修复了之前的一些错误。模板涵盖了字符串处理、数学等多个重要领域,旨在帮助参赛者快速解决各种算法问题。
1. 字符串处理:
- KMP算法:一种用于字符串匹配的高效算法,避免了不必要的回溯,提高了查找效率。
- e-KMP:KMP算法的一种优化,通过增加部分表来减少预处理时间。
- Manacher算法:用于求解最长回文子串问题,利用对称性质减少计算量。
- AC自动机:一种字符串搜索的自动机,可以同时处理多个模式串的匹配。
- 后缀数组:用于处理字符串的排序和查询,可以快速找到字符串的所有子串及其出现次数。
- DA(Double Array):构建后缀数组的一种方法,具有较高的构建速度。
- DC3:用于构建后缀数组的另一种算法,相比DA更节省空间。
- 后缀自动机:后缀数组的扩展,能进行更复杂的字符串操作。
- 字符串Hash:用于快速比较字符串是否相同,常用于文本处理和字符串匹配。
2. 数学:
- 素数筛选:包括判断素数、筛选素数和大区间素数筛选的方法。
- 扩展欧几里得算法:求两个整数的最大公约数并找出其解的形式。
- 求逆元:在模运算下求一个数的逆元,常用于数论问题。
- 模线性方程组:解决模意义下的线性方程组问题。
- 随机素数测试和大数分解:用于验证大数的素性及分解大数。
- 欧拉函数:与数的因数分布相关的函数,用于计算群的阶。
- 高斯消元:用于解决线性方程组,包括浮点数的处理。
- FFT(快速傅里叶变换):用于快速计算离散傅里叶变换,广泛应用于多项式乘法等。
- 方程组的解:包括对2取模的01方程组和同余方程组的解法。
- 整数拆分:将一个整数拆分为若干个正整数的和,研究其组合数。
- 求AB的约数之和对MOD取模:计算两个数乘积的所有约数之和模一个数的结果。
- 莫比乌斯反演:在数论中的一种重要工具,用于简化计算。
- Baby-Step Giant-Step:解决大整数的模幂运算问题。
- 自适应Simpson积分:数值积分的一种方法,根据数据自动调整步长。
- 斐波那契数列取模循环节:研究斐波那契数列模一定数后的周期性。
- 原根:在模p意义下,满足某个条件的整数,用于计算模幂运算。
- 快速数论变换:类似FFT,用于模运算下的多项式乘法和除法。
这份模板详细地列举了ACM竞赛中常见的算法和技巧,对于参赛者来说是一份宝贵的参考资料,可以帮助他们在比赛中快速解决问题,提高解题效率。
2019-04-02 上传
2018-09-05 上传
2022-09-19 上传
2019-11-15 上传
2018-08-11 上传
2020-11-20 上传
2022-09-23 上传
__default__
- 粉丝: 11
- 资源: 4
最新资源
- 电子技术EDA技术软件综述
- uml统一建模语言介绍
- Linux.C++.Programming.HOWTO
- ubuntu linux命令行简明教程 值得 下载
- C语言-从白痴到资深专家阶梯式教程
- uclinux在armsys上的使用说明书
- 算法和算法分析 值得学习
- JSP2_0技术手册(2M版)
- Gesture-Based Interaction and Communication
- 华为大规模逻辑设计指导书
- 夏宇闻Verilog经典教程
- 半个小时帮你搞定计算机启动过程
- 定单管理系统及需求分析说明说含数据流图
- 图形界面开发--AWT,Swing,SWT
- 用C语言实现的通讯录,实现多项功能
- 开发Spring+Struts+Hibernate应用电子书