Bryce1010 Acm模板

目录

STL标准模板库

STL简介
STL pair
STL set
STL vector
STL string
STL stack
STL queue
STL map
upper_bound和lower_bound
STL bitset
greater< int>()和less< int>()

2. 数论

2.1 素数
2.1.1 素数筛选(判断 < MAXN的数是否是素数)
2.1.2 素数筛选(筛选出小于等于MAXN的素数)
2.1.3 大区间素数筛选
2.2 素数筛选和合数分解
2.3扩展欧几里得算法(求ax+by=gcd的解以及逆元)
2.4 求逆元
2.4.1 扩展欧几里得法
2.4.2 间接写法
2.4.3 利用欧拉函数

2.7 欧拉函数
2.7.1 分解质因数求欧拉函数
2.7.2 筛法求欧拉函数
2.7.3 求单个的欧拉函数
2.7.4 线性筛


大数阶乘(分割法)
大数阶乘Stirling公式
线性方程组(高斯消元)
模线性方程组
素数测试(判断素数)
合数相关
求逆元
求原根
莫比乌斯反演
递推公式黑科技
约瑟夫环
博弈论
SG函数

3.数据结构

  1. 划分树
  2. 左偏树
  3. 线段树
    3.1 单点更新+区间求和
    3.2 单点更新+区间求最值
    3.3 区间更新+区间求和
  4. 回文树
  5. 树状数组
    5.1 一维树状数组
    5.2 二维树状数组
  6. Splay树
  7. 动态树

归并排序求逆序数

简单并查集的应用
数的Hash,串的Hash
哈夫曼树
trie树(静态建树,动态建树)
静态二叉检索树
RMQ
并查集的高级应用
KMP算法

String 字符串

KMP算法(字符串匹配)
扩展KMP算法
strstr函数
求最长回文串四种解法
编辑距离
AC自动机
后缀自动机(SAM)

二分

二分法
二分答案
折半枚举(双向搜索)

4.图论

4.1 最短路
4.1.1 Dijkstra单源最短路
4.1.2 Dijkstra算法+堆优化
4.1.3 单源最短路bell_ford算法
4.1.4 单源最短路SPFA
4.2 最小生成树
4.2.1 Prim 算法
4.2.2 Kruskal算法
4.3 次小生成树
4.4 有向图的强联通分量
4.4.1 Tarjan
4.4.2 Kosaraju
4.5 图的割点、桥和双连通分支的基本概念
4.6 割点与桥
4.6.1 模板
4.6.2 调用
4.7 边双联通分支
4.8 点双联通分值
4.9 最小树形图
4.10 二分图匹配
4.10.1邻接矩阵(匈牙利算法)
4.10.2 邻接表(匈牙利算法)
4.10.3 Hopcroft-Karp算法
4.11 二分图多重匹配
4.12 二分图最大权匹配(KM算法)
4.13 一般图匹配带花树
4.14 一般图最大加权匹配
4.15 生成树计数
4.16 最大流
4.16.1 SAP邻接矩阵形式
4.17最小费用最大流
4.18 2-SAT
4.18.1 染色法
4.18.2 强联通缩点法
4.19 曼哈顿最小生成树
4.20 LCA
4.20.1 dfs+ST在线算法
4.20.2 离线Tarjan算法
4.20.3 LCA倍增法
4.21 欧拉路
4.21.1 有向图
4.21.2 无向图
4.21.3 混合图
4.22 树分治
4.22.1 点分治HDU5016
4.22.2 点分治HDU4918
4.22.3 链分治 HDU5039

搜索

DFS和BFS模板
简单搜索技巧及剪枝
最优化剪枝和可行性剪枝
记忆化搜索

动态规划

最长公共子序列LCS
最长上升子序列(LIS)
数位DP
背包九讲

精选技巧

1.快速幂及矩阵快速幂
2.矩阵运算
3.尺取法
4. NlogN求逆序数对

——最后更新于2018.6.14

原文地址:https://www.cnblogs.com/bryce1010/p/9386816.html