FPTOJ WIKI
Giới thiệu¶
Chào mừng bạn đến với FPTOJ Wiki – một bản fork được phát triển từ VNOI Wiki.
Mục tiêu của chúng mình là tạo ra một không gian mở để chia sẻ kiến thức Tin học cho cộng đồng, tập trung chủ yếu vào Thuật toán và Lập trình thi đấu (Competitive Programming). Dự án hiện đang được duy trì và phát triển bởi Hà Trí Kiên cùng cộng đồng FPTOJ. Xem thêm thông tin về chúng mình tại đây.
Nếu bạn có bất kỳ thắc mắc nào trong quá trình học, đừng ngần ngại đặt câu hỏi tại mục Thảo luận (Discussions) ở repo của dự án.
Hệ Thống Đánh Giá Độ Khó¶
Để giúp bạn dễ dàng lựa chọn bài viết phù hợp với trình độ, các bài viết trên Wiki được phân loại theo độ khó từ 1 đến 5 sao:
- (⭐) Cơ bản: Dành cho người mới bắt đầu.
- (⭐⭐) Trung bình: Kiến thức nền tảng cần thiết cho kỳ thi HSG Quốc Gia, ACM ICPC.
- (⭐⭐⭐) Nâng cao: Dành cho các bạn đặt mục tiêu đạt giải cao trong kỳ thi HSG QG.
- (⭐⭐⭐⭐) Rất khó: Các chủ đề phức tạp, đòi hỏi tư duy sâu.
- (⭐⭐⭐⭐⭐) Chuyên sâu: Kiến thức hẹp, đặc thù, áp dụng cho một số ít bài toán cực khó.
Tài liệu khuyên đọc: Đừng bỏ qua Một số tài liệu hay về Thuật Toán (Tài liệu giáo khoa chuyên tin).
Khóa Học Căn Bản & Nền Tảng¶
Nếu bạn là người mới, hãy bắt đầu từ đây! Các bài viết được biên soạn chi tiết, dễ hiểu, đi kèm code mẫu và hình ảnh trực quan.
1. Lập Trình Cơ Bản (Dành cho người mới)¶
Dành cho người chưa biết gì về lập trình, học sinh cấp 2–3 với mục tiêu nắm vững Python & C++ để tham gia thi đấu.
🔗 Xem tổng hợp Lập trình Cơ Bản →
| Chương | Chủ đề | Số bài | Nội dung chính |
|---|---|---|---|
| 1. Python | Cơ bản & Cấu trúc dữ liệu | 13 bài | Biến, vòng lặp, List, Dict, Set, hàm |
| Thư viện & Tổng hợp | 7 bài | collections, heapq, itertools, bài tập thực hành | |
| 2. C++ | Cơ bản & Kỹ thuật | 8 bài | Cú pháp, mảng, string, fast I/O, con trỏ |
| Thư viện STL | 7 bài | vector, map, set, queue, algorithm |
2. Bộ Bài Học Lập Trình Thi Đấu¶
Bộ bài học do chúng mình biên soạn từ cơ bản đến nâng cao.
🔗 Xem chi tiết toàn bộ 71 bài học → · Xem lộ trình tương tác →
| Phân loại | Chủ đề tiêu biểu |
|---|---|
| Nhập môn (⭐) | Setup môi trường, Độ phức tạp, Sắp xếp, Tìm kiếm nhị phân, Phép toán bit, Đệ quy & Quay lui |
| Kỹ thuật (⭐⭐) | Hai con trỏ, Prefix Sum, Lũy thừa nhị phân |
| Cấu trúc dữ liệu | Linked List, Queue, Hash Table, Deque, Trie, Heap, DSU, Segment Tree, Fenwick Tree |
| Đồ thị | BFS/DFS, Dijkstra & MST, Floyd & Bellman-Ford, LCA |
| QHĐ & Tham lam | Quy hoạch động, Tham lam, Tìm nhị phân trên đáp án |
| Xử lý xâu | KMP, Z-algorithm, Manacher, Suffix Array |
| Toán & Số học | Euclid & Modulo, Tổ hợp, Số học nâng cao, Trò chơi, Sàng nâng cao, Bao hàm loại trừ, Nhân ma trận, NTT, Khử Gauss |
| Hình học | Hình học cơ bản, Đường thẳng, Đường tròn, Bao lồi, Định lý Pick, Sắp xếp cực |
| Kỹ năng (⭐-⭐⭐) | Sinh testcase, Debug, Chiến thuật, Tổ chức code |
Chuyên Đề Thuật Toán (Lưu trữ từ VNOI)¶
Dưới đây là tập hợp các bài viết chuyên sâu từ thư viện VNOI và các nguồn uy tín khác. Đừng quên tham khảo VNOI Roadmap - lộ trình hoàn chỉnh cho học sinh đến sinh viên.
1. Nhập môn & Kỹ thuật cơ bản
2. Cấu trúc dữ liệu
- Cơ bản: Tổng quan (⭐⭐), Mảng & DSLK (⭐), Stack (⭐), Mảng cộng dồn & mảng hiệu
- Trung bình: Deque & Min/Max (⭐⭐), Heap (⭐⭐), Hash table (⭐⭐), DSU (⭐⭐)
- Cây Phân Đoạn: Cơ bản, Nâng cao (⭐⭐), Cài đặt tối ưu (⭐⭐⭐), Trên tập đoạn thẳng (⭐⭐⭐⭐), Fenwick Tree (⭐⭐)
- Chia Căn: Cơ bản, Mo's Algorithm (⭐⭐⭐)
- Cây: Heavy Light Decomposition, LCA - Binary Lifting, LCA & RMQ (⭐⭐), LCA tổng hợp (⭐⭐⭐), Trie (⭐⭐)
- Nâng cao: Persistent Data Structures (⭐⭐⭐), Suffix Array (⭐⭐⭐⭐), Palindrome Tree (⭐⭐⭐⭐), Skip List (⭐⭐⭐), Range Tree (⭐⭐⭐)
3. Xử lý xâu
4. Quy hoạch động
- Cơ bản: Nhập môn (⭐⭐), QHĐ Cơ bản 1, QHĐ Cơ bản 2
- Bài tập: Palindrome (⭐⭐), Điển hình (⭐⭐), Thắc mắc QHĐ
- Tối ưu: Kĩ thuật tối ưu hoá (⭐⭐⭐), Bao lồi (Convex Hull Trick) (⭐⭐⭐)
5. Đồ thị
- Cơ bản: Tổng quan (⭐⭐), BFS, Khớp cầu, TPLT mạnh
- Cây & Đường đi: Cây khung nhỏ nhất (MST), Đường đi ngắn nhất, Sắp xếp Tô-pô
- Euler & Nâng cao: Chu trình Euler, Đường đi Euler trên cây, Phân tách trọng tâm
- Khác: Bài toán 2-SAT (⭐⭐⭐), Luồng cực đại trên mạng (⭐⭐⭐)
6. Số học & Toán học
- Số học cơ bản: Kiểm tra NT, Sàng NT, Lũy thừa nhị phân
- Series HackerEarth: Modulo & GCD (⭐), Sàng Eratosthenes (⭐), Tính (a^b) % c (⭐), Phi hàm Euler (⭐⭐), Nghịch đảo modulo (⭐⭐), Tổ hợp (⭐⭐), Xác suất (⭐⭐), Bao hàm - Loại trừ (⭐⭐)
- Toán nâng cao: Toán học trong Tin học (⭐⭐), Xác suất (⭐⭐), Định lý Wilson (⭐⭐⭐), Hàm nhân tính (⭐⭐⭐⭐), Hàm Mobius (⭐⭐⭐⭐), Nhân nhanh đa thức - FFT (⭐⭐⭐⭐)
- Lý thuyết trò chơi: Tổng quan, Alpha-Beta
7. Tham lam, Hình học & Kỹ năng khác
- Tham lam & Tối ưu: Tham lam (⭐⭐), Sum-constrained convex optimization, Tìm kiếm tam phân (⭐⭐⭐), Local Search (⭐⭐⭐)
- Hình học: Cơ bản 1 / Cơ bản 2, Đường quét (⭐⭐), Bao lồi (⭐⭐⭐)
- Kỹ năng khác: Rời rạc hoá (⭐), Nhân ma trận (⭐⭐⭐), Khử nhân ma trận (⭐⭐⭐), Fun with bits
Kỹ Năng & Chia Sẻ Kinh Nghiệm¶
- Về cách học Tin học: Tôi đã học Tin như thế nào (Phần 1) | (Phần 2) | Hoài niệm về Pascal
- Kĩ năng thi cử: Viết trình chấm | Tổng hợp lời khuyên | Kinh nghiệm thi VOI | Phỏng vấn Team IOI 2017
Khoa Học Máy Tính & Ngôn Ngữ¶
- C++: Xử lý xâu | Con trỏ | Sử dụng regex | C++ STL
- Các kỳ thi: ACM ICPC Regional Vietnam
Giải Trí: Trò Chơi với AI¶
Thử sức trí tuệ của bạn với các bot AI: