📜  竞争性编程–完整指南

📅  最后修改于: 2021-06-25 20:17:16             🧑  作者: Mango

竞争编程是一项智力运动,使您可以在提供的约束下编写给定的问题。本文旨在指导每个渴望在这项运动中脱颖而出的个人。本文提供了由行业专家设计的有关竞争编程的详细课程提纲,以促进读者的准备。

竞争性编程完全指南

话题:

  • 介绍
  • 基础知识,贪婪和位操纵
  • 数论与组合
  • 搜索,排序和基本数据结构
  • 树和图
  • 递归和动态编程
  • 字符串算法
  • 几何与博弈论
  • 先进的数据结构

介绍

  • 什么是竞争性编程及其准备方法?
  • 快速I / O: CPP Java Python
  • 有用的库: CPP Java Python
  • 输入/输出文件:设置1 设置2
  • 提示和技巧:设置1 设置2
  • 输入方法: CPP Java Python
  • 模板: CPP
  • 语言: CPP Java Python
  • 时间复杂度:分析 
  • 设置竞争性编程环境:崇高:CPP Visual Studio:CPP和Python

基础知识,贪婪和位操纵

  • 反转数组 (相关问题:问题1 问题2 )
  • 数字总和
  • 检查给定字符串是否为C Python的回文的程序(相关 问题)
  • 数组元素的总和    (相关问题)
  • 数组的最大和最小元素    (相关问题)
  • 计数数组元素的频率 (相关问题: 问题1 问题2 )
  • 浮点数和精度: CPP Java Python
  • 前缀总和 2D前缀总和 差异数组| O(1)中的范围更新查询:(相关问题:问题1 问题2 )
  • 坐标压缩:(相关问题)
  • Kadane算法:(相关问题)
  • 活动选择问题:(相关 问题)
  • 作业排序问题:(相关问题)
  • 滑动窗:(相关 问题)
  • 逻辑运算符: CPP Set 1 Set 2 Java Python
  • 位操作:设置1 设置2 设置3 (相关问题:问题1 问题2 问题3 )
  • 位集CPP

数论与组合

  • 素数 (有关的 问题)
  • Eratosthenes筛 (有关的 问题)
  • 分段筛(相关 问题)
  • 找出一个自然数的所有除数(相关 问题)
  • 数的最小素数最大为N (相关 问题)
  • 一个数的所有素数 (有关的 问题)
  • 使用Sieve O(log n)进行质因子分解以进行多个查询
  • 多个因素的总和 (有关的 问题)
  • 两位数的Gcd 两位数的Lcm (有关的 问题)
  • 线性丢番图方程
  • 欧几里得算法(基本和扩展)
  • 欧拉的Totient函数 (有关的 问题)
  • 所有小于或等于n的数字的欧拉Totient函数
  • 包含排除原则
  • 鸽子洞原理
  • 模块化操作
  • 模逆:(相关 问题1 问题2 )
  • 中国剩余定理:第一,第二
  • O(logN)中的幂(x,y)
  • 功率(x,y)%mod :(相关 问题1 问题2 )
  • 矩阵幂:(相关 问题)
  • 排列组合:组合1 组合2 测验1 测验2
  • nCr:设置1 设置2
  • nCr%mod: Set1 Set 2 :(相关 问题)
  • 多个查询的nCr%mod :(相关 问题)
  • 加泰罗尼亚语数字 应用及相关 问题
  • 高斯消除

搜索,排序和基本数据结构

  • 线性搜寻 (相关问题:  问题1 问题2 )
  • 二进制搜索无限二进制搜索 (相关问题:  问题1 问题2 问题3 )
  • 内置排序O(logN): CPP Java Python (相关问题:  问题1 问题2 问题3 问题4 )
  • 合并排序 (相关问题:  问题1 问题2 )
  • 快速排序 (相关问题:  问题)
  • 堆栈:在中的实现 CPP Java Python (相关问题:  问题1 问题2 问题3 )
  • 列:中的实作 CPP Java Python (相关问题:  问题1 问题2 问题3 )
  • Deque:CPP Java Python (相关问题:  问题)
  • 优先级队列:中的实施 CPP Java Python (相关问题:  问题1 问题2 问题3 )

树和图

  • 树BFS 树DFS (相关问题: 问题1 问题2 问题3 )
  • 图BFS 图BFS 2图DFS (相关问题: 问题1 问题2 )
  • Dijkstra最短路径算法 (相关问题:  问题1 问题2 )
  • Bellman –福特算法 (有关的 问题)
  • Floyd Warshall算法 (相关问题)
  • 0-1 BFS Dial算法
  • 检测周期:导演无向 (相关问题:  问题1 问题2 )
  • 不交集(联合查找):集合1 集合2 集合3 (有关的 问题)
  • 拓扑排序卡恩算法 (相关问题)
  • 最小生成树: Prim算法 Kruskal算法 (相关问题)
  • 是否有两方 M着色 (相关问题:  问题1 问题2 问题3 )
  • 紧密连接的组件: Tarjan Kosaraju (相关问题:  问题1 问题2 )
  • 欧拉路径:无向定向 (有关的 问题)
  • 流算法: Set 1 Set 2 Dinic算法 (相关问题:  问题1 问题2 )
  • 树径
  • 重心分解
  • 最低共同祖先

递归和动态编程

  • 递归测验1 测验2 测验3 测验4 测验5 测验6 测验7 (相关问题: 问题1 问题2 问题3 )
  • 回溯:(相关问题: 探针1 问题2 )
  • Dp简介:设置1 设置2 设置3 设置4 设置5
  • 最有用的动态编程问题
  • 附加DP问题:问题1 问题2 问题3 问题4
  • 树上的Dp:设置1 设置2
  • Dp on Bit Masking:设置1 设置2 设置3
  • 数字Dp

字符串算法

  • 后缀树:设置1 设置2
  • Z算法
  • KMP算法 Rabin-Karp算法 (有关的 问题)
  • Manacher算法:设置1 设置2 设置3 设置4
  • 后缀自动化:设置1 设置2

几何与博弈论

  • 最接近的点对
  • 如何检查两个给定的线段是否相交? (相关 问题)
  • 如何检查给定点位于多边形内部还是外部?
  • 凸包:设置1 设置2 (相关问题)
  • 给定n个线段,找出两个线段是否相交
  • 检查给定点是否在三角形内
  • 如何检查给定的四个点是否形成正方形:(相关 问题)
  • 组合博弈论:集合1 集合2 集合3 集合4
  • 博弈论中的极小极大算法:集合1 集合2 集合3 集合4 集合5
  • Nim游戏的变化
  • 在nim-game中寻找赢家
  • 游戏的最佳策略

先进的数据结构

  • 尝试:集合1 集合2 集合3 ,(相关问题问题1 问题2 问题3 问题4 问题5 )
  • Fenwick树:设置1 设置2 设置3 设置4 ,(相关 问题)
  • 段树:设置1 设置2 设置3 (相关 问题)
  • 稀疏表:设置1 设置2
  • Sqrt分解:设置1 设置2
  • 重轻分解:设置1,设置2
  • 在中间相遇
  • MO算法问题
  • 基于策略的数据结构

您也可以查看Geeksforgeeks在线课程以学习数据结构和算法,这是由行业专家精心设计的课程。

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