0% found this document useful (0 votes)
18 views

Competitive Programming Syllabus

The document outlines a comprehensive syllabus for competitive programming, categorized into beginner, intermediate, and advanced levels. It covers various topics including data structures, algorithms, number theory, dynamic programming, and graph theory, along with practical problem-solving techniques. Each section provides detailed subtopics and learning objectives to guide learners through the competitive programming landscape.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Competitive Programming Syllabus

The document outlines a comprehensive syllabus for competitive programming, categorized into beginner, intermediate, and advanced levels. It covers various topics including data structures, algorithms, number theory, dynamic programming, and graph theory, along with practical problem-solving techniques. Each section provides detailed subtopics and learning objectives to guide learners through the competitive programming landscape.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Competitive Programming Syllabus

Beginner

Topic Details
1

i) How Online Judges & online contests work


Introduction to Competitive ii) Explanation of different verdicts
Programming iii) How to solve a problem (Live Demo)
iv) Introduction to team contests, what is ICPC

i) Binary Number System


Operators & Complexity
ii) Logical and Bitwise Operators and their application in CP
Analysis
iii) Introduction to Time & Memory Complexity Analysis

i) What are Subarray, Substring, Subsequence,


Palindrome,
Arrays and Strings
Longest Palindromic Substring, Anagram etc.
ii) Relevant Problem Solving
4

i) Intro to function and Recursive functions.


Function
ii) Recursive function applications

Data Structures and C++ i) Intro to Basic Data Structure (Stack/Queue/Vector etc)
STL ii) Brief discussion on application of various STL features.

6
Searching Techniques Binary Search and applications

i) Insertion Sort, Counting Sort, Bubble Sort


Various Sorting Algorithms
ii) Merge Sort

i) Divisibility and Divison Algorithm


ii) GCD and LCM
iii) Prime numbers and composite numbers
Number Theory iv) Divisors of a number and Primality Testing
v) Sieve of Eratosthenes
vi) Number of Divisors (using prime factorization)
vii) Number of Divisors and sum of Divisors (using Sieve)
9

i) Identities in modular arithmetic.


Modular Arithmetic
ii) Modular exponentiation (bigmod) and it's application.

10

Greedy Technique Introduction to greedy technique

11

Dynamic Programming Intro to DP

12
Intermediate

Topic Details
1

i) Asymptotic complexity and Big-O analysis


Course Introduction,
ii) Scenario based complexity analysis
Complexity Analysis and
iii) Usage of Vector over Array, How Vector works!
Basic Data Structures
iv) Introduction to Linked List, Queue, Stack and Deque

i) Introduction to Heap/Priority Queue


ii) Introduction to Binary Search Tree, Set, Multiset
Tree Based Data Structures
iii) Map vs HashMap
and STL
iv) C++ Policy Based Data Structures
v) Problem solving using STL
3

i) Binary Search, lower_bound, upper_bound


ii) Application of Binary Search in various problems
Searching Techniques
iii) Ternary Search and its application in optimization
problems
4

i) Prefix Sum, 2D prefix Sum


Miscellaneous Part 1 ii) Two pointer technique and relevant problem discussion
iii) Introduction to bitwise operations and bitmask
5

i) Primality Test, Sieve of Eratosthenes, Segmented Sieve


ii) Introduction to Modular Arithmetic, Modular Inverse,
Number Theory
BigMod
iii) Solving Number Theory Problems
6
i) nPr, nCr Theory
Combinatorics
ii) Stars and Bars Theorem

i) Introduction to Graphs
ii) Adjacency List and Matrix
iii) BFS and DFS
Graph Theory iv) Cycle Finding
v) Bicoloring
vi) Topological Sorting
vii) Finding Diameter of a Tree
8

i) Concept of Recursion
Recursion and Backtracking
ii) Backtracking Technique and Problems Discussion

i) Introduction to DP and Complexity analysis of DP


ii) Rod cutting Dp, 0/1 Knapsack and Coin change
variations
Dynamic Programming
iii) Longest Common Subsequence, Longest Increasing
Subsequence and Longest Palindromic Subsequence
iv) Solving many classical Dp problems

10

i) Basics of KMP
String Algorithms ii) Basics of Hashing
iii) Trie/ Prefix Tree
11
i) Variety Problem Discussion
Miscellaneous Part 2
ii) Pracitce and learning guidelines after the course

12

Advanced

Topic Details
1

i) Square Root Decomposition


ii) Sparse Table + LCA + RMQ in O(1) for static data
Data Structure
iii) Segment Tree Basics + BIT
iv) Segment Tree Advanced

i) Floyd Warshall, Variations of Dijkstra


Graph ii) Graph Problems
iii) SCC/2-SAT

i) Trie + Hashing basics


String
ii) KMP basics + Problem Solving

i) Intro to Probability/Expected Value


Math
ii) Number Theory + Combinatorics Problems

5
i) Basic DP Problems + Iterative DP
Dynamic
ii) More DP Problems + DP with DS (Segment Tree)
Programming
iii) Bitmask DP
6

Game Theory Basics (up to nim game)


Game Theory

Point in Polygon, Ternary Search, Precision Issue Handling, Problem


Geometry
Solving

Made By: Synapse

You might also like