📜  竞争性编程的十大算法和数据结构

📅  最后修改于: 2021-06-25 22:45:24             🧑  作者: Mango

在这篇文章中,“竞争性编码的十大重要算法和数据结构”。
话题 :

  1. 图算法
  2. 动态编程
  3. 搜索和排序:
  4. 数论及其他数学
  5. 几何和网络流算法
  6. 数据结构

竞争性程序设计

以下链接涵盖了所有最重要的算法和数据结构主题:

图算法

  1. 广度优先搜索(BFS)
  2. 深度优先搜索(DFS)
  3. 从源到所有顶点的最短路径** Dijkstra **
  4. 每个顶点到另一个顶点的最短路径**弗洛伊德·沃舍尔**
  5. 最小生成树** Prim **
  6. 最小生成树** Kruskal **
  7. 拓扑排序
  8. 约翰逊算法
  9. 图形中的关节点(或切点)
  10. 图中的桥梁

所有图算法

动态编程

  1. 最长公共子序列
  2. 最长递增子序列
  3. 编辑距离
  4. 最小分区
  5. 覆盖距离的方法
  6. 矩阵中的最长路径
  7. 子集总和问题
  8. 游戏的最佳策略
  9. 0-1背包问题
  10. 装配线调度

所有DP算法

搜索和排序

  1. 二元搜寻
  2. 快速排序
  3. 合并排序
  4. 订单统计
  5. KMP算法
  6. 拉宾·卡尔普
  7. Z的算法
  8. Aho Corasick字符串匹配
  9. 计数排序
  10. Manacher的算法:第1部分,第2部分和第3部分

有关搜索,排序和模式搜索的所有文章。

数论及其他数学

素数和素数分解

  1. 原始性测试|第一组(介绍和学校方法)
  2. 原始性测试|套装2(Fermat方法)
  3. 原始性测试|第三组(米勒-拉宾)
  4. Eratosthenes筛
  5. 分段筛
  6. 威尔逊定理
  7. 素数分解
  8. Pollard的Rho算法

模算术算法

  1. 基本和扩展的欧几里得算法
  2. 欧拉的Totient函数
  3. 模幂
  4. 模乘逆
  5. 中国余数定理介绍
  6. 中文余数定理和模逆实现
  7. nCr%m和这个。

各种各样的:

  1. 计数反转
  2. 使用BIT计算倒数
  3. 对数幂
  4. 整数的平方根
  5. 重光分解,这个和这个
  6. 矩阵等级
  7. 高斯消除法求解线性方程组
  8. 匈牙利算法
  9. 链接剪切
  10. 莫的算法和这个
  11. C++中的大量阶乘
  12. Java +中的大量阶乘
  13. 俄罗斯农民繁殖
  14. 加泰罗尼亚语编号

关于数学算法的所有文章

几何和网络流算法

  1. 凸包
  2. 格雷厄姆·斯堪
  3. 线相交
  4. 间隔树
  5. 矩阵求幂与此
  6. Maxflow Ford Furkerson Algo和Edmond Karp的实施
  7. 最小切
  8. 稳定的婚姻问题
  9. 用于最大匹配的Hopcroft–Karp算法
  10. Dinic的算法和e-maxx

关于几何算法的所有文章

数据结构

  1. 二叉索引树或Fenwick树
  2. 段树(RMQ,范围总和和延迟传播)
  3. KD树(请参阅插入,最小值和删除)
  4. 联合查找不相交集(循环检测以及按等级和路径压缩)
  5. 尝试
  6. 后缀数组(this,this和this)
  7. 稀疏表
  8. 后缀自动机
  9. 后缀自动机II
  10. LCA和RMQ

有关高级数据结构的所有文章。

如何开始?
请参阅如何开始竞争性编程?

如何练习?
请参阅https://practice.geeksforgeeks.org/

面试问题中最热门的算法是什么?
面试问题中的十大算法

如何为ACM – ICPC做准备?
如何为ACM – ICPC做准备?

如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。