Skip to content

Basic Problem Solving is a collection of beginner-friendly programming challenges aimed at improving problem-solving skills. It covers a range of topics, from algorithms to data structures

Notifications You must be signed in to change notification settings

JabedWeb/Basic_Problem_Solving

Repository files navigation

Competitive Programming Guide

These topics and concepts essential for competitive programming.

For the complete schedule, please refer to the Complete Schedule and Problem List.

Algorithms:

  1. Searching and Sorting: Binary search, Merge sort, Quick sort.
  2. Graph Algorithms: Breadth-first search (BFS), Depth-first search (DFS), Dijkstra's algorithm, Floyd-Warshall, Kruskal's algorithm, Prim's algorithm, Topological sort.
  3. Dynamic Programming: Understanding the concept of state, memoization, and tabulation.
  4. Greedy Algorithms: Activity selection, Fractional knapsack, etc.
  5. Divide and Conquer: Master theorem, Strassen’s Matrix Multiplication, Closest Pair of Points.
  6. Backtracking: N-Queens problem, Hamiltonian cycle, Sudoku solver.
  7. String Algorithms: KMP, Z-algorithm, Rabin-Karp, Manacher's algorithm.
  8. Number Theory: Euclidean algorithms, Modular arithmetic, Fermat’s theorem, Euler’s totient function.
  9. Bit Manipulation: Basic operations, Bitmasking.
  10. Geometry: Convex hull, Line intersection.

Data Structures:

  1. Arrays and Strings.
  2. Linked Lists: Singly linked list, Doubly linked list.
  3. Stacks and Queues.
  4. Trees: Binary trees, Binary search trees, AVL trees, Segment trees, Fenwick trees.
  5. Heaps: Binary heap, Fibonacci heap.
  6. Hashing: Hash table, Hash functions.
  7. Graphs: Adjacency matrix, Adjacency list.
  8. Disjoint Set: Union-find data structure.
  9. Tries.

Standard Template Library (STL) in C++:

  1. Containers: Vector, List, Deque, Set, Multiset, Map, Multimap.
  2. Algorithms: Sort, Reverse, Permute, Lower_bound, Upper_bound.
  3. Iterators.
  4. Utility Classes: Pair, Stack, Queue.

Mathematics:

  1. Combinatorics: Permutations, Combinations, Pigeonhole principle.
  2. Probability.
  3. Number Theory: Prime numbers, Greatest common divisor, Least common multiple.
  4. Geometry: Basic concepts about points, lines, angles, and polygons.
  5. Linear Algebra: Matrices, Determinants.
  6. Calculus: Especially if dealing with optimization problems.

Miscellaneous:

  1. Recursion.
  2. Problem-solving Paradigms: Brute force, Sliding window.
  3. Advanced Data Structures: Suffix arrays, Suffix trees, Treap, etc.

About

Basic Problem Solving is a collection of beginner-friendly programming challenges aimed at improving problem-solving skills. It covers a range of topics, from algorithms to data structures

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published