N-Code C++
Khách
Đăng nhập
ĐIỂM TÍCH LŨY
0
BÀI ĐÃ LÀM
0
HÔM NAY
2026-10-08
KỲ THI ĐANG/SẮP DIỄN RA
Không có kỳ thi nào.
HỆ THỐNG BÀI TẬP & LÝ THUYẾT
Tất cả chủ đề
Đồng Tháp
Vĩnh Long
HSG Quốc Gia
Các tỉnh khác
1. Nhập xuất & Kiểu dữ liệu
2. Cấu trúc rẽ nhánh (If/Else)
3. Vòng lặp (For/While)
4. Mảng 1 chiều & Vector
5. Mảng 2 chiều & Ma trận
6. Xâu ký tự (String)
7. Kiểu Struct & Hàm
Nền tảng C++ & Tối ưu
DIFFERENCE ARRAY 1D
8. Mảng Cộng Dồn (Prefix Sum)
9. MẢNG CỘNG DỒN 2D (NGUYÊN LÝ BÙ TRỪ)
1. Sắp xếp & Tìm kiếm
2. Đệ quy & Quay lui (Backtracking)
3. Tham lam (Greedy)
4. Hai con trỏ (Two Pointers)
5. Chia để trị
1. DP Cơ bản (1D)
2. DP Cái túi (Knapsack)
3. DP Xâu (LCS, Edit Distance)
4. DP trên Cây & Đồ thị
BITMASK DP
1. Duyệt đồ thị (BFS / DFS)
2. Đường đi ngắn nhất (Dijkstra)
3. Cây khung nhỏ nhất (MST)
4. Luồng cực đại
1. Ngăn xếp & Hàng đợi (Stack/Queue)
2. Cây phân đoạn (Segment Tree/BIT)
3. Disjoint Set (DSU)
4. Trie & Hash Map
Tìm kiếm nhị phân (Binary Search - lower_bound)
1. Số học (Sàng, GCD, Modulo)
2. Tổ hợp & Xác suất
3. Hình học phẳng (Tọa độ, Vector)
4. Ma trận & Lũy thừa
Mảng cộng dồn (Prefix Sum)
CẨM NANG HSG
1. Ngăn xếp (Stack)
Bài 1: Kỹ thuật tối ưu I/O và các cấu trúc dữ liệu STL C++ thiết yếu
Bài 2: Đánh giá độ phức tạp & Mảng cộng dồn, Mảng hiệu
Bài 3: Kỹ thuật Hai con trỏ (Two Pointers) và Cửa sổ trượt (Sliding Window)
Bài 4: Tìm kiếm nhị phân (Binary Search)
Bài 5: Ngăn xếp (Stack) và Hàng đợi (Queue)
Bài 6: Cây Fenwick (Binary Indexed Tree - BIT)
Bài 7: Cây Segment (Segment Tree) - Cơ bản và Nâng cao
Bài 8: Biểu diễn đồ thị, Thuật toán DFS và BFS
Bài 9: Bài toán Đường đi ngắn nhất
Bài 10: Cây khung nhỏ nhất (MST) & Tập hợp rời rạc (DSU)
Bài 11: Tổ tiên chung gần nhất (LCA) và Khớp, Cầu
Bài 12: Quy hoạch động cơ bản
Bài 13: Quy hoạch động mảng 2D và Quy hoạch động trạng thái (Bitmask DP)
Bài 14: Quy hoạch động trên Cây (Tree DP)
Bài 15: Lý thuyết số
Bài 16: Toán tổ hợp và Luỹ thừa ma trận
Bài 17: Xử lý xâu và Thuật toán Băm xâu (Hash String)
Bài 18: So khớp chuỗi với KMP và Cây tiền tố (Trie)
Bài 19: Kiến thức nền tảng Hình học
Bài 20: Điểm, Đoạn thẳng và Đường thẳng
Bài 21: Đa giác (Polygon)
Bài 22: Bao lồi (Convex Hull)
Bài 23: Đường quét (Sweep Line) & Chia để trị
ĐƯỢC GIAO
KHO TỰ LUYỆN
ĐÃ LÀM
KHO LÝ THUYẾT
Tuyệt vời!
Em đã hoàn thành tất cả các bài tập được giao hoặc chưa có bài thực hành mới.
AIRPORT
3. Cây khung nhỏ nhất (MST)
Khó
Vào luyện
ALLIANCE
1. DP Cơ bản (1D)
Khó
Vào luyện
ANCIENT
1. DP Cơ bản (1D)
Khó
Vào luyện
AVERAGE
Mảng cộng dồn (Prefix Sum)
Dễ
Vào luyện
BOOK
3. Tham lam (Greedy)
Dễ
Vào luyện
CASTLE
4. DP trên Cây & Đồ thị
Khó
Vào luyện
CAVE
2. Đường đi ngắn nhất (Dijkstra)
Khó
Vào luyện
CHAOS
2. Cây phân đoạn (Segment Tree/BIT)
Khó
Vào luyện
COLLECT
4. Hai con trỏ (Two Pointers)
Trung bình
Vào luyện
Cipher
4. Hai con trỏ (Two Pointers)
Trung bình
Vào luyện
DECODE
2. Tổ hợp & Xác suất
Khó
Vào luyện
DIVK
2. Tổ hợp & Xác suất
Dễ
Vào luyện
DIVSUB
1. DP Cơ bản (1D)
Trung bình
Vào luyện
ENCODE
1. DP Cơ bản (1D)
Khó
Vào luyện
FLIGHT
2. Đường đi ngắn nhất (Dijkstra)
Khó
Vào luyện
FOREST
5. Mảng 2 chiều & Ma trận
Dễ
Vào luyện
GIAXAU
1. Số học (Sàng, GCD, Modulo)
Khó
Vào luyện
LINE
2. Cây phân đoạn (Segment Tree/BIT)
Khó
Vào luyện
LIS
Tìm kiếm nhị phân (Binary Search - lower_bound)
Khó
Vào luyện
NATION
1. Duyệt đồ thị (BFS / DFS)
Dễ
Vào luyện
PASSWORD
6. Xâu ký tự (String)
Trung bình
Vào luyện
RECT
1. Ngăn xếp (Stack)
Khó
Vào luyện
ROBOCON
2. Tổ hợp & Xác suất
Khó
Vào luyện
ROUTE
1. Sắp xếp & Tìm kiếm
Khó
Vào luyện
SAFECODE
4. Hai con trỏ (Two Pointers)
Khó
Vào luyện
SCHEDULE
4. DP trên Cây & Đồ thị
Trung bình
Vào luyện
SECURE
1. Duyệt đồ thị (BFS / DFS)
Khó
Vào luyện
SHOPPING
3. Tham lam (Greedy)
Trung bình
Vào luyện
SOLAR
2. Cây phân đoạn (Segment Tree/BIT)
Trung bình
Vào luyện
SUBDIV
Mảng cộng dồn (Prefix Sum)
Trung bình
Vào luyện
TEAM
4. Hai con trỏ (Two Pointers)
Dễ
Vào luyện
TICKET
1. DP Cơ bản (1D)
Khó
Vào luyện
Tower
2. DP Cái túi (Knapsack)
Khó
Vào luyện
WIFI
3. Tham lam (Greedy)
Dễ
Vào luyện
flood
1. Duyệt đồ thị (BFS / DFS)
Khó
Vào luyện
sprime
1. Số học (Sàng, GCD, Modulo)
Dễ
Vào luyện
Chưa có bài nào được hoàn thành.
PHẦN 1: NỀN TẢNG VÀ TỐI ƯU HÓA (KHỞI ĐỘNG)
Bài 1: Kỹ thuật tối ưu I/O và các cấu trúc dữ liệu STL C++ thiết yếu
1.1. Bản chất của I/O trong C++ và kỹ thuật dập đồng bộ (ios_base::sync_with_stdio(false); cin.tie(NULL);).
1.2. Mảng động (Vector): Kỹ thuật cấp phát, quản lý bộ nhớ và các phương thức trọng tâm.
1.3. Ánh xạ và Tập hợp (Map & Set): Bản chất cây đỏ - đen và bài toán tra cứu $O(\log N)$.
1.4. Hàng đợi ưu tiên (Priority Queue): Cấu trúc Heap và các bài toán lấy Max/Min liên tục.
Bài 2: Đánh giá độ phức tạp & Mảng cộng dồn, Mảng hiệu
2.1. Đánh giá độ phức tạp Thời gian (Time) và Không gian (Space) (Ký hiệu Big $O$). Làm sao để nhìn giới hạn $N$ đoán thuật toán?
chuyen_e_21_anh_gia_o_phuc_tap_nhin_n_oan_thuat_toan
2.2. Kỹ thuật đếm phân phối (Counting Array) và ứng dụng đếm tần số.
chu_e_22_ky_thuat_em_phan_phoi
chuyen_e_22_mang_em_phan_phoi
2.3. Mảng cộng dồn 1 chiều (Prefix Sum 1D) và 2 chiều (Prefix Sum 2D).
chuyen_e_23_mang_cong_don
2.4. Mảng hiệu 1 chiều (Difference Array 1D) và 2 chiều (Difference Array 2D).
chuyen_e_24_mang_hieu_difference_array
Bài 3: Kỹ thuật Hai con trỏ (Two Pointers) và Cửa sổ trượt (Sliding Window)
3.1. Bản chất kỹ thuật Hai con trỏ trên mảng đã sắp xếp.
3.2. Kỹ thuật Cửa sổ trượt kích thước cố định (Fixed Sliding Window).
3.3. Kỹ thuật Cửa sổ trượt kích thước linh hoạt (Variable Sliding Window).
Bài 4: Tìm kiếm nhị phân (Binary Search)
4.1. Cài đặt Binary Search chuẩn mực: Xử lý vòng lặp vô hạn và lỗi tràn số nguyên.
4.2. Các hàm tìm kiếm nhị phân STL mạnh mẽ (lower_bound, upper_bound).
4.3. Kỹ thuật Tìm kiếm nhị phân trên tập kết quả (Binary Search on Answer) - Chìa khóa giải các bài tối ưu.
PHẦN 2: CẤU TRÚC DỮ LIỆU (VẬN DỤNG CAO)
Bài 5: Ngăn xếp (Stack) và Hàng đợi (Queue)
5.1. Cấu trúc LIFO (Stack) và bài toán kinh điển: Kiểm tra dãy ngoặc hợp lệ.
5.2. Ngăn xếp đơn điệu (Monotonic Stack) và bài toán tìm hình chữ nhật lớn nhất.
5.3. Cấu trúc FIFO (Queue) và Hàng đợi hai đầu (Deque).
5.4. Hàng đợi đơn điệu (Monotonic Queue) tìm Max/Min trên cửa sổ trượt $O(N)$.
Bài 6: Cây Fenwick (Binary Indexed Tree - BIT)
6.1. Ý tưởng biểu diễn số nguyên bằng bit và cấu trúc của mảng BIT.
6.2. Bài toán 1: Cập nhật điểm, truy vấn tổng trên đoạn.
6.3. Bài toán 2: Cập nhật đoạn, truy vấn giá trị tại một điểm (Sử dụng mảng hiệu).
Bài 7: Cây Segment (Segment Tree) - Cơ bản và Nâng cao
7.1. Cấu trúc cây Segment: Cách Xây dựng (Build), Cập nhật điểm (Update) và Truy vấn đoạn (Query).
7.2. Tối ưu hóa: Kỹ thuật cập nhật đoạn với độ trễ truyền tải (Lazy Propagation).
7.3. Ứng dụng Segment Tree giải bài toán tìm Min/Max trên đoạn (RMQ).
PHẦN 3: THUẬT TOÁN ĐỒ THỊ (TRỌNG TÂM THI TỈNH & QUỐC GIA)
Bài 8: Biểu diễn đồ thị, Thuật toán DFS và BFS
8.1. Các phương pháp biểu diễn đồ thị (Ma trận kề, Danh sách kề, Danh sách cạnh) - Ưu và nhược điểm.
8.2. Thuật toán Duyệt theo chiều sâu (DFS) và ứng dụng đếm số thành phần liên thông.
8.3. Thuật toán Duyệt theo chiều rộng (BFS) và bài toán tìm đường đi ngắn nhất trên đồ thị không trọng số.
Bài 9: Bài toán Đường đi ngắn nhất
9.1. Thuật toán Dijkstra tối ưu bằng Priority Queue (Đồ thị trọng số không âm).
9.2. Thuật toán Bellman-Ford (Xử lý đồ thị có trọng số âm, phát hiện chu trình âm).
9.3. Thuật toán Floyd-Warshall (Tìm đường đi ngắn nhất giữa mọi cặp đỉnh trên đồ thị nhỏ).
Bài 10: Cây khung nhỏ nhất (MST) & Tập hợp rời rạc (DSU)
10.1. Cấu trúc Tập hợp rời rạc (DSU) và Kỹ thuật tối ưu Nén đường dẫn (Path Compression).
10.2. Thuật toán Kruskal tìm cây khung nhỏ nhất $O(E \log V)$.
10.3. Thuật toán Prim (Tiếp cận từ đỉnh).
Bài 11: Tổ tiên chung gần nhất (LCA) và Khớp, Cầu
11.1. Thuật toán Tarjan tìm Khớp và Cầu trên đồ thị.
11.2. Tìm Tổ tiên chung gần nhất (LCA) bằng Kỹ thuật Nhảy nhị phân (Binary Lifting).
PHẦN 4: QUY HOẠCH ĐỘNG (PHÂN LOẠI VOI)
Bài 12: Quy hoạch động cơ bản
12.1. Bài toán Dãy con chung dài nhất (LCS - Longest Common Subsequence).
12.2. Bài toán Dãy con tăng dài nhất (LIS) - So sánh giải thuật $O(N^2)$ và $O(N \log N)$.
12.3. Bài toán Cái túi (Knapsack Problem) và các biến thể.
Bài 13: Quy hoạch động mảng 2D và Quy hoạch động trạng thái (Bitmask DP)
13.1. Quy hoạch động trên lưới 2D (Grid DP) và kỹ thuật lăn mảng tiết kiệm bộ nhớ.
13.2. Thao tác trên Bit cơ bản (Bitwise operations: AND, OR, XOR, Dịch bit).
13.3. Quy hoạch động trạng thái: Giải bài toán Người đi du lịch (TSP) bằng Bitmask DP.
Bài 14: Quy hoạch động trên Cây (Tree DP)
14.1. Kỹ thuật duyệt cây từ dưới lên (Bottom-Up) cho bài toán quy hoạch động.
14.2. Bài toán tính đường kính của cây.
14.3. Bài toán phủ đỉnh trên cây.
PHẦN 5: TOÁN HỌC & XỬ LÝ XÂU
Bài 15: Lý thuyết số
15.1. Sàng nguyên tố Eratosthenes và Kỹ thuật phân tích thừa số nguyên tố cực nhanh.
15.2. Thuật toán Euclid (UCLN, BCNN) và Euclid mở rộng.
15.3. Số học Modulo và Kỹ thuật tính Nghịch đảo Modulo (Modular Multiplicative Inverse).
Bài 16: Toán tổ hợp và Luỹ thừa ma trận
16.1. Tính Tổ hợp $C(n, k)$ nhanh thông qua giai thừa modulo.
16.2. Kỹ thuật tính luỹ thừa nhị phân nhanh (Binary Exponentiation).
16.3. Nhân ma trận và ứng dụng Luỹ thừa ma trận tính số Fibonacci thứ $N$ cực lớn.
Bài 17: Xử lý xâu và Thuật toán Băm xâu (Hash String)
17.1. Các hàm xử lý xâu chuẩn trong STL C++ (substr, find, string::npos).
17.2. Bản chất Thuật toán Băm xâu (Rolling Hash).
17.3. Kỹ thuật băm đa thức, Module kép (Double Hashing) và cách chống test "đụng độ" (Collision).
Bài 18: So khớp chuỗi với KMP và Cây tiền tố (Trie)
18.1. Thuật toán KMP (Knuth-Morris-Pratt) và ý nghĩa của mảng $\pi$ (Prefix function).
18.2. Cấu trúc Cây tiền tố (Trie): Khai báo, Thêm từ và Tìm kiếm xâu.
18.3. Ứng dụng Trie vào các bài toán xử lý xâu nâng cao (ví dụ: Tìm XOR lớn nhất).
PHẦN 6: HÌNH HỌC TÍNH TOÁN (TRỌNG TÂM PHÂN LOẠI VOI)
Bài 19: Kiến thức nền tảng Hình học
19.1. Khai báo cấu trúc Tọa độ, Vector (struct/class) trong C++.
chuyen_e_191_nen_tang_hinh_hoc_tich_vo_huong
19.2. Tích vô hướng (Dot Product) và ứng dụng hình học.
chuyen_e_192_tich_co_huong_va_ham_ccw
19.3. Tích có hướng (Cross Product) và Kỹ thuật so sánh EPSILON ($\epsilon$) để vượt qua bẫy sai số số thực.
chuyen_e_193_ky_thuat_xu_ly_sai_so_so_thuc_epsilon
Bài 20: Điểm, Đoạn thẳng và Đường thẳng
20.1. Xác định hướng rẽ rẽ trái/phải (CCW - Counter Clockwise).
20.2. Thuật toán kiểm tra giao nhau của hai đoạn thẳng bằng CCW.
20.3. Tính khoảng cách từ một điểm đến đường thẳng và đoạn thẳng.
Bài 21: Đa giác (Polygon)
21.1. Công thức dây giày (Shoelace Formula) tính diện tích đa giác tọa độ bất kỳ.
21.2. Định lý Pick đếm số điểm nguyên trên đa giác lưới nguyên.
21.3. Thuật toán Tia phóng (Ray Casting) kiểm tra một điểm nằm trong, ngoài hay trên cạnh đa giác.
Bài 22: Bao lồi (Convex Hull)
22.1. Bản chất và định nghĩa hình học của Bao lồi.
22.2. Thuật toán Chuỗi đơn điệu (Monotone Chain) chia bao trên/bao dưới $O(N \log N)$.
22.3. Thuật toán Graham Scan bằng kỹ thuật sắp xếp theo góc cực.
Bài 23: Đường quét (Sweep Line) & Chia để trị
23.1. Bài toán cặp điểm gần nhất (Closest Pair of Points) bằng phương pháp Chia để trị (Divide & Conquer).
23.2. Tư duy Đường quét (Sweep Line) ứng dụng trong hình học.
23.3. Kết hợp Đường quét và Segment Tree giải bài toán diện tích phủ của nhiều hình chữ nhật.
TRUNG TÂM THÔNG BÁO
THÔNG BÁO TỪ GIÁO VIÊN
Chưa có thông báo nào.
GỬI TIN NHẮN CHO THẦY
Gửi tin nhắn