ACM-ICPC-Algorithms icon indicating copy to clipboard operation
ACM-ICPC-Algorithms copied to clipboard

Algorithms used in Competitive Programming

ACM-ICPC Algorithms

Introduction to ACM-ICPC

ACM International Collegiate Programming Contest (abbreviated as ACM-ICPC or ICPC) is an annual multi-tiered competitive programming competition among the universities of the world.

Alternately, we can say that the International Collegiate Programming Contest is an algorithmic programming contest for college students.

  • Teams of three, representing their university, work to solve real-world problems, fostering collaboration, creativity, innovation, and the ability to perform under pressure.
  • Through training and competition, teams challenge each other to raise the bar on what could be done.
  • Quite simply, it is the oldest, largest, and most prestigious programming contest in the world.

Purpose of ACM-ICPC Algorithms

ACM-ICPC Algorithms is a collection of important algorithms and data structures used to solve questions in this worldwide olympiad. It aims to provide solutions in various languages as per ICPC 2018 WF, including:

  • C
  • C++
  • Java
  • Python (2 & 3)
  • Kotlin
For more information, visit: Official Website of ICPC

If you wish to contribute, please refer to the contributor guidelines.

Table of Contents :

  • Breadth First Search
  • Branch And Bound
    • 0/1 Knapsack
  • Binary Search Tree
  • Backtracking
    • Hamilton Path
    • Knights Tour
    • NQueens
    • Rat In A Maze
    • Sudoku Algorithm
  • Depth First Search
  • Bit Manipulation
    • Checking Power of 2
    • Nth Magic No
    • Set kth Bit
    • Sparse Number
    • Count Ones
    • Divide Integers
    • Even Odd
    • Print Subsets
    • Reverse Bits
    • Single Number
    • Swap Bits
  • Data Structures
    • Disjoint Set
    • Doubly Linked List
    • Fenwick Tree
    • LCA
    • Linked List
    • Queue
    • Queue From Stack Or Stack From Queue
    • Red Black Tree
    • Singly Linked List
    • Stack
    • Segment Tree
    • Treap
    • Trie
  • Dynamic Programming
    • Coin Change
    • Collect Maximum Points
    • Edit Distance
    • Egg Dropping Puzzle
    • Fibonacci Series
    • Floyd Warshall Algorithm
    • Game Of Sum
    • Knapsack
    • Longest Palindrome Substring
    • Longest Common Increasing Subsequence
    • Longest Common Subsequence
    • Longest Increasing Subsequence
    • Longest Repeated Subsequence
    • Matrix Chain Multiplication
    • Max Sum Increasing Subsequence
    • Minimum Path Sum
    • Number Of Islands
    • Partition Problem
    • Print Neatly
    • Recursive Staircase Problem
    • Shortest Uncommon Subsequence
    • Subset Sum
    • Longest Bitonic SubSequence
    • Tiling Problem
  • Graph Algorithms
    • Articulation Points
    • Bellman Ford SSSP
    • Bridges
    • Centroid Decomposition
    • Detect Cycle
    • Dials Algorithm
    • Dijkstras SPT
    • Euler Path
    • Floyd Warshall
    • Graph Coloring
    • Johnson's Algorithm
    • Kruskal MST
    • Prims MST
    • Sack
    • SPFA SSSP
    • Targan SCC
    • Topo Sort
    • Fenwick Tree
    • Weighted Quick Union
  • Greedy Algorithms
    • Activity Selection
    • Containership
    • Equalizing Bit Strings
    • Gas Station
    • Greedy Graph Coloring
    • Huffman Coding
    • Knapsack
    • Kruskal's Minimum Spanning Tree
    • Maximum Increasing Subarray
    • Minimum Coins
    • Odd Sum Subsequence
  • Hashing Algorithms
    • 2 Sum
    • 3 Sum
    • 4 Sum
  • Machine Learning
    • Perceptron
  • Mathematical Algorithms
    • 3 Sum square complexity
    • Factors Of A Given Number
    • Collatz Conjecture
    • Combinations
    • Bézout's Coefficients
    • Convex Hull
    • Euler's Totient Function
    • Factorization
    • Factors
    • Fast Exponentiation with Mod
    • Floor Square Root
    • Greatest Common Divisor
    • Histogram Area
    • Largest Number Divisible By Three
    • Last Digit Exp
    • Logarithm
    • Lowest Common Multiple
    • Matrix Power
    • Max Divisible Number
    • Max Sub Rectangle
    • Max Sub Square
    • Miller Rabin Primality Test
    • Modular Multiplication Inverse
    • Next Power of 2
    • Nth Root
    • Pascal Row
    • Power
    • Prime
    • Randomized Algorithms
    • Set
    • Sieve Of Eratosthenes
    • Square Root
    • Subset Sum
    • Sum Of Digits
    • Tower Of Hanoi
    • Truncated Square Root
    • Calculate And Print All Permutations
    • Calculate the result of binom(n,p)
  • Network Flow
    • Dinic
    • Edmund Karp
    • Ford Fulkerson
    • Goldberg Tarjan
  • Search Algorithms
    • Binary Search
    • Fibonacci Search
    • Hashing
    • Jump Search
    • Linear Search
    • Ternary Search
    • Interpolation Search
    • Exponential Search
  • Sorting Algorithms
    • BogoSort
    • Strand sort
    • Bubble Sort
    • Bucket Sort
    • Cocktail Shaker Sort
    • Comb Sort
    • Counting Sort
    • HeapSort
    • Index Sort
    • Insertion Sort
    • Merge Sort
    • Pancake Sorting
    • Patience Sorting
    • QuickSort
    • Radix Sort
    • Selection Sort
    • ShellSort
    • TimSort
    • Topological Sorting
  • String Algorithms
    • Anagram
    • Balanced Parenthesis
    • Hamming Distance
    • KMP
    • Palindrome
    • String Automaton
    • String Matching
    • Substring
    • Top K Frequent Words
    • Top K Frequent Words In Java
    • Uncompressing Strings
    • Parsing Arithmetic
  • Geometry 2D
    • Lines Intersection