Kurikulum Competitive Programming

Berikut adalah daftar lengkap algoritma dan struktur data yang harus dikuasai untuk Olimpiade Komputer, diurutkan berdasarkan tingkat kesulitan dan prioritas:

Level 1: Fundamental (Pemula)

1. Kompleksitas Algoritma

  • Big O Notation
  • Analisis waktu dan ruang

2. Struktur Data Dasar

  • Array dan String
  • Stack dan Queue
  • Linked List
  • Hash Table / Hash Map

3. Algoritma Dasar

  • Linear Search dan Binary Search
  • Sorting: Bubble, Selection, Insertion, Merge, Quick Sort
  • Two Pointers Technique
  • Sliding Window

4. Matematika Dasar

  • Bilangan Prima (Sieve of Eratosthenes)
  • GCD dan LCM (Euclidean Algorithm)
  • Modular Arithmetic
  • Fast Power (Exponentiation by Squaring)

Level 2: Intermediate (Menengah)

5. Rekursi dan Backtracking

  • Pemahaman rekursi mendalam
  • Backtracking untuk permutasi, kombinasi
  • N-Queens Problem
  • Sudoku Solver

6. Dynamic Programming (DP)

  • Fibonacci, Coin Change
  • Knapsack Problem (0/1 dan Unbounded)
  • Longest Common Subsequence (LCS)
  • Longest Increasing Subsequence (LIS)
  • Edit Distance
  • Matrix Chain Multiplication
  • DP on Trees
  • Digit DP
  • Bitmask DP

7. Graph – Dasar

  • Representasi Graph (Adjacency List/Matrix)
  • DFS (Depth-First Search)
  • BFS (Breadth-First Search)
  • Cycle Detection
  • Topological Sort
  • Connected Components

8. Graph – Shortest Path

  • Dijkstra’s Algorithm
  • Bellman-Ford Algorithm
  • Floyd-Warshall Algorithm
  • 0-1 BFS

9. Greedy Algorithms

  • Activity Selection
  • Fractional Knapsack
  • Huffman Coding
  • Job Sequencing

10. Divide and Conquer

  • Merge Sort, Quick Sort
  • Binary Search variants
  • Closest Pair of Points

Level 3: Advanced (Lanjutan)

11. Tree Algorithms

  • Binary Tree Traversal
  • Binary Search Tree (BST)
  • AVL Tree dan Red-Black Tree
  • Segment Tree
  • Fenwick Tree (Binary Indexed Tree)
  • Lowest Common Ancestor (LCA)
  • Heavy-Light Decomposition

12. Graph – Advanced

  • Minimum Spanning Tree (Kruskal, Prim)
  • Strongly Connected Components (Kosaraju, Tarjan)
  • Articulation Points dan Bridges
  • Bipartite Matching
  • Maximum Flow (Ford-Fulkerson, Edmonds-Karp)
  • Min-Cut Max-Flow Theorem

13. String Algorithms

  • KMP (Knuth-Morris-Pratt)
  • Rabin-Karp Algorithm
  • Z-Algorithm
  • Trie (Prefix Tree)
  • Suffix Array dan Suffix Tree
  • Aho-Corasick Algorithm
  • Manacher’s Algorithm (Longest Palindrome)

14. Advanced Data Structures

  • Disjoint Set Union (DSU / Union-Find)
  • Sparse Table
  • Square Root Decomposition
  • Persistent Data Structures

Level 4: Expert (Mahir)

15. Advanced DP

  • DP Optimization (Convex Hull Trick, Divide and Conquer Optimization)
  • SOS DP (Sum over Subsets)
  • DP on DAG
  • Profile DP

16. Computational Geometry

  • Convex Hull (Graham Scan, Jarvis March)
  • Line Intersection
  • Point in Polygon
  • Sweep Line Algorithm
  • Closest Pair of Points

17. Number Theory

  • Prime Factorization
  • Euler’s Totient Function
  • Chinese Remainder Theorem
  • Modular Inverse
  • Matrix Exponentiation

18. Game Theory

  • Nim Game
  • Grundy Numbers (Sprague-Grundy Theorem)
  • Minimax Algorithm
  • Alpha-Beta Pruning

19. Advanced Graph

  • Network Flow variants
  • Min Cost Max Flow
  • Hungarian Algorithm
  • 2-SAT Problem
  • Centroid Decomposition

20. Advanced Techniques

  • Meet in the Middle
  • Binary Lifting
  • Mo’s Algorithm
  • Parallel Binary Search
  • FFT (Fast Fourier Transform) untuk polinomial

Keterampilan Tambahan Penting

Problem Solving Skills:

  • Pattern recognition
  • Breaking down complex problems
  • Optimization thinking

Implementation Skills:

  • Clean dan efficient code
  • Debugging cepat
  • Template management

Contest Strategy:

  • Time management
  • Problem selection
  • Partial points strategy

Rekomendasi Urutan Belajar

Untuk persiapan Olimpiade yang sistematis, saya sarankan:

  1. 3-6 bulan pertama: Fokus pada Level 1 dan mulai Level 2
  2. 6-12 bulan: Kuasai Level 2, terutama DP dan Graph dasar
  3. 12-18 bulan: Level 3, fokus pada Tree dan String algorithms
  4. 18+ bulan: Level 4 dan spesialisasi pada area tertentu

Platform Latihan yang Direkomendasikan:

  • Codeforces
  • AtCoder
  • CSES Problem Set
  • LeetCode
  • HackerRank
  • USACO Training

About Reza Ervani 434 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.