竞争编程是一项智力运动,使您可以在提供的约束下编写给定的问题。本文旨在指导每个渴望在这项运动中脱颖而出的个人。本文提供了由行业专家设计的有关竞争编程的详细课程提纲,以促进读者的准备。
话题:
- 介绍
- 基础知识,贪婪和位操纵
- 数论与组合
- 搜索,排序和基本数据结构
- 树和图
- 递归和动态编程
- 字符串算法
- 几何与博弈论
- 先进的数据结构
介绍
- 什么是竞争性编程及其准备方法?
- 快速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现场课程美国》。