ACM-ICPC-Algorithms
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