Giter Club home page Giter Club logo

cp-templates's Introduction

cp-templates

Overview

This repository contains templates for Competitive Programming in C++ envisioned and built by your one and only, Ahmad Dzuizz Annajib.

Comprehensive list of available templates:

  1. Data Structures

    • Segment Tree
      • Range Addition Update, Range Sum Query with Lazy Propagation (array)
      • Range Addition Update, Range Sum Query with Lazy Propagation and Lazy Nodes (pointer)
      • All-In-One Implementation (pointer) - To Be Implemented
    • Fenwick Tree (Binary Indexed Tree)
      • Range Addition Update, Range Sum Query (2 BITs approach)
    • Disjoint Set Union (Union-Find)
      • Disjoint Set Union with Path Compression and Union by Size
      • Disjoint Set Union with Path Compression and Union by Rank -- To Be Implemented
      • Count no. of Connected Components in a Graph
    • Sparse Table - To Be Implemented
    • Trie (Prefix Tree) - To Be Implemented
    • Median Heap
      • Median Heap with 2 Heaps (Min Heap and Max Heap) - To Be Implemented
    • Balanced Binary Search Tree (e.g., AVL Tree, Red-Black Tree) - To Be Implemented
    • Queue with Min/Max - To Be Implemented
    • Persistent Data Structures - To Be Implemented
  2. Graph Theory

    • Dijkstra's Algorithm
    • Breadth-First Search (BFS)
      • Flood Fill Algorithm
    • Depth-First Search (DFS)
      • Flood Fill Algorithm - To Be Implemented
    • Bellman-Ford Algorithm - To Be Implemented
    • Floyd-Warshall Algorithm
    • Kruskal's Algorithm - To Be Implemented
    • Tarjan's Algorithm - To Be Implemented
    • Topological Sorting - To Be Implemented
    • Bridges and Articulation Points - To Be Implemented
    • Graph Matching Algorithms - To Be Implemented
    • Flow Networks (Max Flow, Min Cut) - To Be Implemented
  3. Trees

    • LCA (Lowest Common Ancestor) with Binary Lifting, a.k.a 2k Decomposition
    • APSP (All Pairs Shortest Path) with Binary Lifting, a.k.a 2k Decomposition
    • Diameter of a Tree
    • Centroid Decomposition - To Be Implemented
    • Heavy-Light Decomposition - To Be Implemented
    • Euler Tour Technique - To Be Implemented
    • DP on Tree - To Be Implemented
  4. Algebra

    • Matrix Exponentiation - To Be Implemented
    • Extended Euclidean Algorithm - To Be Implemented
    • Sieve of Eratosthenes - To Be Implemented
    • Modular Arithmetic Operations - To Be Implemented
    • Prime Factorization - To Be Implemented
    • Modular Exponentiation - To Be Implemented
    • GCD/LCM - To Be Implemented
    • Fast Multiplication (Karatsuba, FFT) - To Be Implemented
    • Combinatorics (Combinations, Permutations) - To Be Implemented
  5. Dynamic Programming

    • 0/1 Knapsack Problem - To Be Implemented
    • Longest Common Subsequence - To Be Implemented
    • Coin Change Problem - To Be Implemented
    • Edit Distance - To Be Implemented
    • Matrix Chain Multiplication - To Be Implemented
    • Longest Increasing Subsequence - To Be Implemented
    • Digit DP - To Be Implemented
    • Bitmask DP - To Be Implemented
    • DP on Trees - To Be Implemented
    • Knuth Optimization - To Be Implemented
    • DP with Probabilities - To Be Implemented
  6. Geometry

    • Convex Hull (Graham's Scan)
      • Dynamic Convex Hull Trick for DP optimization
      • Monotone Chain Algorithm - To Be Implemented
    • Line Intersection - To Be Implemented
    • Closest Pair of Points - To Be Implemented
    • Polygon Area - To Be Implemented
    • Point Inside a Polygon Check - To Be Implemented
    • Geometric Transformations - To Be Implemented
    • Rotating Calipers - To Be Implemented
  7. String Processing

    • KMP Algorithm - To Be Implemented
    • Z-Algorithm
    • Manacher's Algorithm - To Be Implemented
    • Rabin-Karp Algorithm - To Be Implemented
    • Suffix Array and LCP - To Be Implemented
    • Aho-Corasick Algorithm - To Be Implemented
    • Suffix Automaton - To Be Implemented
  8. Numerical Algorithms

    • Fast Fourier Transform - To Be Implemented
    • Binary Exponentiation - To Be Implemented
    • Chinese Remainder Theorem - To Be Implemented
    • Euclidean Algorithm for GCD - To Be Implemented
    • Newton-Raphson Method for Numerical Root Finding - To Be Implemented
    • Simpson's Rule (Numerical Integration) - To Be Implemented
    • Linear Algebra Techniques - To Be Implemented
  9. Classic Techniques

    • Binary Search - To Be Implemented
    • Two Pointers - To Be Implemented
    • Sliding Window - To Be Implemented
    • Meet in the Middle - To Be Implemented
    • Divide and Conquer - To Be Implemented
    • Greedy Algorithms - To Be Implemented
    • Backtracking - To Be Implemented
    • Brute Force - To Be Implemented
    • Recursive Techniques - To Be Implemented
  10. Miscellaneous

    • Counting Inversions with Merge Sort - To Be Implemented
    • Sliding Window Technique - To Be Implemented
    • Two Pointers Technique - To Be Implemented
    • Bitmasking Techniques - To Be Implemented
    • Game Theory (Nim Game, Grundy Numbers) - To Be Implemented
    • Mo's Algorithm - To Be Implemented
    • Randomized Algorithms - To Be Implemented
    • Optimization Techniques (Hill Climbing, Simulated Annealing) - To Be Implemented

My Contact

If you have any suggestions on any improvements, please do not hesitate to contact me at [email protected].


cp-templates's People

Contributors

dzuizz avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

panndev

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.