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

Competitive Programming

This document provides a comprehensive guide to competitive programming with sections on fundamentals like arrays, strings, greedy algorithms and bit manipulation. It also covers more advanced topics such as searching and sorting algorithms, data structures, recursion, dynamic programming, trees and graphs. Each topic contains links to problems and explanations to help readers develop their skills in algorithm design and analysis.

Uploaded by

Loser To Winner
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views

Competitive Programming

This document provides a comprehensive guide to competitive programming with sections on fundamentals like arrays, strings, greedy algorithms and bit manipulation. It also covers more advanced topics such as searching and sorting algorithms, data structures, recursion, dynamic programming, trees and graphs. Each topic contains links to problems and explanations to help readers develop their skills in algorithm design and analysis.

Uploaded by

Loser To Winner
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

COMPETITIVE PROGRAMMING – A COMPLETE GUIDE

Introduction
• What is Competitive Programming and How to Prepare for It?

• Fast I/O: CPP, Java, Python

• Useful libraries: CPP, Java, Python

• Input/Output Files: Set 1, Set 2

• Tips and Tricks: Set 1, Set 2

• Input Methods: CPP, Java, Python

• Template: CPP

• Language: CPP, Java, Python

• Time Complexity: Analysis

• Setting up Competitive Programming Environment: Sublime: CPP, Visual Studio:


CPP and Python

Basics Of Array , String, Greedy and Bit Manipulation

• Reverse an array (Related Problems: Problem 1, Problem 2)

• Sum of Digits

• Program to Check if a Given String is Palindrome in C, Python (Related Problem)

• Sum of array elements (Related Problem)

• Maximum and Minimum element of array (Related Problem)

• Counting frequencies of array elements (Related Problems: Problem 1, Problem


2)

• Float and Precision: CPP, Java, Python

• Prefix sum, 2D Prefix Sum Difference Array | Range update query in


O(1): (Related Problems: Problem 1, Problem 2)

• Coordinate Compression: (Related Problem)


• Kadane Algorithm: (Related Problem)

• Activity Selection Problem: (Related Problem)

• Job Sequencing Problem: (Related Problem)

• Sliding Window: (Related Problem)

• Logical Operators: CPP Set 1, Set 2, Java, Python

• Bit Manipulation: Set 1, Set 2, Set 3 (Related Problems: Problem 1, Problem


2, Problem 3)

• Bitset CPP

• https://www.geeksforgeeks.org/top-50-array-coding-problems-for-interviews/

• https://www.geeksforgeeks.org/top-50-string-coding-problems-for-interviews/

Number Theory and Combinatorics

• Prime Number (Related Problem)

• Sieve of Eratosthenes (Related Problem)

• Segmented Sieve (Related Problem)

• Find all divisors of a natural number (Related Problem)

• Least prime factor of numbers upto N (Related Problem)

• All prime factors of a number (Related Problem)

• Prime Factorization using Sieve O(log n) for multiple queries

• Sum of all factors of a number (Related Problem)

• Gcd of Two numbers, Lcm of two numbers (Related Problem)

• Linear Diophantine Equations

• Euclidean algorithms (Basic and Extended)

• Euler’s Totient Function (Related Problem)

• Euler’s Totient function for all numbers smaller than or equal to n

• Inclusion Exclusion Principle


• Pigeon Hole Principle

• Modular Operations

• Modular Inverse: (Related Problem 1, Problem 2)

• Chinese Remainder Theorem: Set 1, Set 2

• Power(x, y) in O( logN )

• Power(x, y) % mod: (Related Problem 1, Problem 2)

• Matrix Exponentiation: (Related Problem)

• Permutation and Combination: Set 1, Set 2, Quiz 1, Quiz 2

• nCr: Set 1, Set 2

• nCr % mod: Set1, Set 2: (Related Problem)

• nCr % mod for multiple queries: (Related Problem)

• Catalan numbers: Applications and Related Problem

• Gaussian Elimination

Searching, Sorting and Basic Data Structures

• Linear Search (Related Problems : Problem 1, Problem 2)

• Binary Search, Unbounded Binary Search (Related Problems : Problem 1, Problem


2, Problem 3)

• Inbuilt sorting O(logN): CPP, Java, Python (Related Problems : Problem 1, Problem
2, Problem 3, Problem 4)

• Merge Sort (Related Problems : Problem 1, Problem 2)

• Quick Sort (Related Problems : Problem)

• Stack: Implementation in CPP, Java, Python (Related Problems : Problem


1, Problem 2, Problem 3)

• Queue: Implementation in CPP, Java, Python (Related Problems : Problem


1, Problem 2 , Problem 3)

• Deque: Implementation in CPP, Java, Python (Related Problems : Problem)


• Priority Queue: Implementation in CPP, Java, Python (Related Problems : Problem
1, Problem 2, Problem 3)

Tree and Graphs

• Tree BFS, Tree DFS (Related Problems : Problem 1, Problem 2, Problem 3)

• Graph BFS, Graph BFS 2, Graph DFS (Related Problems : Problem 1, Problem 2)

• Dijkstra’s Shortest Path Algorithm (Related Problems : Problem 1, Problem 2)

• Bellman – Ford Algorithm (Related Problem)

• Floyd Warshall Algorithm (Related Problem)

• 0-1 BFS, Dial’s Algorithm

• Detect cycle: Directed, Undirected (Related Problems : Problem 1, Problem 2)

• Disjoint set(union-find): Set 1, Set 2, Set 3 (Related Problem)

• Topological Sorting, Kahn’s Algorithm (Related Problem)

• Minimum Spanning Tree: Prim’s Algorithm, Kruskal Algorithm (Related Problem)

• Bipartite or not, M-Coloring (Related Problems : Problem 1, Problem 2, Problem 3)

• Strongly Connected Components: Tarjan, Kosaraju (Related Problems : Problem


1 , Problem 2)

• Euler Path: Undirected, Directed (Related Problem)

• Flow Algorithms: Set 1, Set 2, Dinic’s Algorithm (Related Problems : Problem


1, Problem 2)

• Diameter of Tree

• Centroid Decomposition

• Lowest Common Ancestor

• https://www.geeksforgeeks.org/top-50-tree-coding-problems-for-interviews/

Recursion and Dynamic Programming

• Recursion: Quiz 1, Quiz 2, Quiz 3, Quiz 4, Quiz 5, Quiz 6, Quiz 7 (Related


Problems : Problem 1, Problem 2, Problem 3)
• Backtracking: (Related Problems : Problem 1, Problem 2)

• Dp Introduction: Set 1, Set 2, Set 3, Set 4, Set 5

• Most useful Dynamic Programming questions

• Additional DP Problems : Problem 1, Problem 2, Problem 3, Problem 4

• Dp on Trees: Set 1, Set 2

• Dp on Bit Masking: Set 1, Set 2, Set 3

• Digit Dp

• https://www.geeksforgeeks.org/top-50-dynamic-programming-coding-problems-
for-interviews/

String Algorithms

• Suffix Tree: Set 1, Set 2

• Z Algorithm

• KMP Algorithm, Rabin-Karp Algorithm (Related Problem)

• Manacher’s Algorithm: Set 1, Set 2, Set 3, Set 4

• Suffix Automation: Set 1, Set 2

Geometry and Game Theory

• Closest Pair of Points

• How to check if two given line segments intersect? (Related Problem)

• How to check if a given point lies inside or outside a polygon?

• Convex Hull: Set 1, Set 2 (Related Problem)

• Given n line segments, find if any two segments intersect

• Check whether a given point lies inside a triangle or not

• How to check if given four points form a square: (Related Problem)

• Combinatorial Game Theory: Set 1 , Set 2, Set 3, Set 4

• Minimax Algorithm in Game Theory: Set 1, Set 2, Set 3, Set 4, Set 5


• Variation in Nim Game

• Find the winner in nim-game

• Optimal Strategy for a Game

Advance Data Structures

• Trie: Set 1, Set 2, Set 3, (Related Problems: Problem 1, Problem 2, Problem


3, Problem 4, Problem 5)

• Fenwick Tree: Set 1, Set 2, Set 3, Set 4, (Related Problem)

• Segment Tree: Set 1, Set 2, Set 3 (Related Problem)

• Sparse Table: Set 1, Set 2

• Sqrt Decomposition: Set 1, Set 2

• Heavy Light Decomposition: Set 1, Set 2

• Meet in the Middle

• MO’s Algorithm, Problem

• Policy based Data Structure

You might also like