NEU-TestAccount / ACM-ICPC

ACM-ICPC templates and codes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ACM-ICPC模板目录

字符串处理

  1. Trie树

  2. KMP算法

  3. Aho-Corasick自动机

  4. Manacher算法——最长回文子串

  5. Palindromic Tree——回文树

  6. 后缀数组

  7. 后缀自动机

  8. 字符串哈希

  9. 最小表示法

数论

  1. Eratosthenes筛法

  2. Euler筛法(积性函数常用)

  3. 质因数分解

  4. (扩展)欧几里得算法——模意义下的二元一次方程

  5. 费马小定理(欧拉定理)

  6. 线性递推数论拟元

  7. **剩余定理

  8. Miller-Rabin算法(随机大素数测试)

  9. Pollard-Rho算法(随机大整数质因式分解)

  10. Baby-Step-Giant-Step算法——求离散对数

代数

  1. 莫比乌斯反演

  2. 矩阵乘法

组合数学&概率论

  1. 求组合数

    • DP
    • 线性递推(数论意义下)
    • Lucas定理
  2. 容斥原理

  3. Burnside引理——等价类计数

博弈

  1. 基本原理

  2. Sprague-Grudy定理——公平组合博弈(Impartial Combinatori Games)

  3. Nim!博弈

  4. Bash博弈

  5. Wythoff博弈

  6. Zeckendorf定理——Fibonacci博弈

数值计算

  1. 高斯消元

  2. 二分与三分法

  3. Lagrange乘数法

  4. 牛顿迭代

  5. Simpson积分

多项式

参考pyx的多项式导论
  1. 多项式乘法

    1. Fast Fourier Transform
    2. Number Theory Transform
  2. Fast Walsh-Hadamard Transform——基于位运算的卷积

  3. 多项式除法

数据结构

  1. 树状数组 (Fenwick Tree)

  2. 堆(可以添加动态修改的功能)

  3. 线段树

    1. 单值维护
    2. 单值维护+多种区间修改
    3. 多值维护
    4. 可持久化
    5. 动态开点
  4. DFS序列

  5. 伸展树 (Splay Tree)

  6. 树堆 (Treap)

  7. 树链剖分

  8. 动态树(Link-Cut Tree)

图论

  1. 最短路

    1. Dijkstra 算法
    2. spfa 算法 (Bellman-Ford算法的队列优化)
    3. Floyd 算法
    4. 差分约束
  2. 最大公共祖先

    1. Tarjan LCA算法(线性的离线算法)
    2. 倍增LCA
    3. DFS序列+RMQ
  3. 生成树

    1. Kruskal 算法
    2. Prim 算法
    3. 曼哈顿距离最小生成树
    4. Matrix Tree定理——生成树计数
  4. 图的连通性

    1. 强连通分量
    2. 割点 & 桥
    3. 边双连通 & 点双连通
    4. 最小割集——Stoer-Wagner算法
  5. 树的同构

  6. 朱刘算法——最小树形图

  7. 二分图匹配

    1. 匈牙利算法
    2. 网络流建图
    3. KM算法——二分图最大权匹配
    4. 二分图多重匹配
  8. 网络流

  9. 2-SAT问题

  10. 曼哈顿距离最小生成树

  11. 带花树算法——一般图匹配

计算几何

  1. 通用函数

  2. 凸包

  3. 半平面交

  4. 旋转卡壳

动态规划

  1. 背包问题

  2. 四边形不等式

  3. 状态压缩

    1. 枚举子集
    2. 插头DP
  4. 数位DP

贪心

  1. 拟阵

  2. 经典问题

杂项

  1. 分治

    1. 整体二分
    2. 陈丹琦分治
    3. 树的点分治
  2. 分块

  3. 倍增

  4. 手动模拟调用栈

  5. 高精度

  6. 快速读入

  7. 黑科技

    1. Berlekamp-Massey
    2. Stern-Brocot Tree
    3. 五边形数&拆分数
    4. Meissel-Lehmer Method O(N^{2/3})计算N以内素数个数
    5. Method of Four Russians 快速处理元素取值范围有限的矩阵乘法

About

ACM-ICPC templates and codes


Languages

Language:C++ 65.2%Language:C 20.8%Language:TeX 10.7%Language:Python 2.7%Language:Makefile 0.3%Language:Java 0.2%Language:Shell 0.1%Language:Vim Script 0.1%