此仓库为一个算法竞赛模板库,语言为C++,其中的模板代码为用结构体或类封装的算法模板代码
- 用结构体或类进行封装,其旨在让某些功能更方便调用,让模板更容易调试,代码结构更加清晰
- 每份模板都有对应的一个或多个模板题目并在代码开头的注释说明了模板题目来源与链接
- 所有模板均通过模板题目测试,正确性无误,通常情况可放心使用,但对于特殊问题可能需要注意合理修改
- 出于更方便理解和使用模板,此模板库的封装代码大多数没有复杂泛型集成,只有结构体和类的简单封装,只有少数需要兼容数据类型的模板使用了泛型
- 注:此模板库目前只保留作者所学过的模板中适合进行封装的模板,并不包含所有常用算法模板
- 没有万能的算法模板直接适用于某一类问题的所有问题,也不是所有模板都适合封装,具体问题具体分析,合理运用,拒绝不思考无脑套用
- 此模板库会随着作者的学习不断更新,也欢迎大家提issue或fork进行补充
- 并查集
- Dijkstra单源最短路
- Floyd全源最短路
- SPFA-判负环/求单源最短路
- Kruskal算法求解生成树
- Prim算法求解生成树
- Borůvka算法求解生成树
- LCA-倍增法
- LCA-RMQ在线法
- LCA-Tarjan离线法
- 强连通分量-缩点与SCC重构图
- 强连通分量-割点
- 树的重心-每个节点作为子树根节点的重心
- Kruskal重构树
- 二分图最大匹配-匈牙利算法
- 二分图最大匹配-Horpcroft_Karp算法