Đ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
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)
ALLIANCE
1. DP Cơ bản (1D)
ANCIENT
1. DP Cơ bản (1D)
AVERAGE
Mảng cộng dồn (Prefix Sum)
BOOK
3. Tham lam (Greedy)
CASTLE
4. DP trên Cây & Đồ thị
CAVE
2. Đường đi ngắn nhất (Dijkstra)
CHAOS
2. Cây phân đoạn (Segment Tree/BIT)
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
DIVK
2. Tổ hợp & Xác suất
DIVSUB
1. DP Cơ bản (1D)
Trung bình Vào luyện
ENCODE
1. DP Cơ bản (1D)
FLIGHT
2. Đường đi ngắn nhất (Dijkstra)
FOREST
5. Mảng 2 chiều & Ma trận
GIAXAU
1. Số học (Sàng, GCD, Modulo)
LINE
2. Cây phân đoạn (Segment Tree/BIT)
LIS
Tìm kiếm nhị phân (Binary Search - lower_bound)
NATION
1. Duyệt đồ thị (BFS / DFS)
PASSWORD
6. Xâu ký tự (String)
Trung bình Vào luyện
RECT
1. Ngăn xếp (Stack)
ROBOCON
2. Tổ hợp & Xác suất
ROUTE
1. Sắp xếp & Tìm kiếm
SAFECODE
4. Hai con trỏ (Two Pointers)
SCHEDULE
4. DP trên Cây & Đồ thị
Trung bình Vào luyện
SECURE
1. Duyệt đồ thị (BFS / DFS)
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)
TICKET
1. DP Cơ bản (1D)
Tower
2. DP Cái túi (Knapsack)
WIFI
3. Tham lam (Greedy)
flood
1. Duyệt đồ thị (BFS / DFS)
sprime
1. Số học (Sàng, GCD, Modulo)
Chưa có bài nào được hoàn thành.

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
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.

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).

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).

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.

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).

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
  • 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.