Lập trình thi đấu - Rank Bạc
Về khóa học này
Lập trình thi đấu - Bạc
Khóa học miễn phí dành cho các bạn đã hoàn thành khóa Đồng (Bronze) và muốn nâng cao trình độ với các kỹ thuật trung cấp trong lập trình thi đấu.
Bạn sẽ học được gì?
- Class & Struct — đóng gói code thành đối tượng (nền tảng để viết code gọn gàng)
- Mảng tiền tố 2D & Difference Array
- Cấu trúc dữ liệu STL:
set,map,multiset - Stack, Queue và Monotonic Deque
- Đếm đoạn con & cửa sổ với trạng thái phức tạp
- Tìm kiếm nhị phân trên đáp án (Parametric Search)
- Băm xâu (String Hashing) — polynomial hash, so sánh đoạn xâu \(O(1)\)
- BFS/DFS trên lưới — Floodfill, Multi-source BFS, 0-1 BFS
- Toán số học & tổ hợp — nghịch đảo modular, \(C(n,k) \bmod p\), sàng tuyến tính, bù trừ
- Cây và DFS trên cây
- Đường đi ngắn nhất — Dijkstra
- Quy hoạch động nâng cao trên dãy & xâu (LIS \(O(n \log n)\), LCS, Edit Distance, Knapsack mở rộng)
Yêu cầu
- Đã hoàn thành khóa Đồng hoặc tương đương
- Vững các kiến thức: sắp xếp, tìm kiếm nhị phân cơ bản, prefix sum, two pointers, greedy, BFS/DFS cơ bản, DP cơ bản
- Quen với C++ (recommend) hoặc Python
Sau khóa học
Hoàn thành khóa Bạc, bạn sẽ sẵn sàng cho khóa Vàng (Gold) — nơi học các thuật toán nâng cao như DSU & Sắp xếp Topo, Segment Tree, DP trên cây, Strongly Connected Components, Heavy-Light Decomposition, v.v.
Cách học
- Đọc kỹ lý thuyết và code mẫu trong từng bài
- Giải bài tập từ dễ đến khó
- Hoàn thành ít nhất 60% mỗi bài để mở khóa bài tiếp theo