Skip to content

FPTOJ Problem Set: Danh Mục Bài Tập và Giáo Trình

Tài liệu này là mục lục chuẩn học thuật cho toàn bộ hệ thống bài tập thực hành trên FPTOJ. Toàn bộ các bài tập được cấu trúc đồng bộ theo 10 phân nhánh chuyên môn, tương ứng trực tiếp với các chuyên đề lý thuyết trên Wiki.


PHẦN I: NHẬP MÔN VÀ KỸ NĂNG NỀN TẢNG (FOUNDATIONS & BASIC TECHNIQUES)

1.1. Nhập môn và Môi trường thực thi

Hướng dẫn làm quen hệ thống chấm tự động, luồng nhập xuất dữ liệu và các thao tác cơ bản đầu tiên.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
setup-fibo Gia tộc thỏ Bình ⭐⭐ Nhập xuất cơ bản Setup môi trường thi đấu
setup-game Trò chơi chia kẹo ⭐⭐ Nhập xuất cơ bản Setup môi trường thi đấu
setup-hello Lời chào từ An Nhập xuất cơ bản Setup môi trường thi đấu
setup-sum An và chiếc hộp quà ⭐⭐ Nhập xuất cơ bản Setup môi trường thi đấu
setup-triangle Mảnh đất hình tam giác ⭐⭐⭐ Nhập xuất cơ bản Setup môi trường thi đấu

1.2. Phân tích Độ phức tạp thuật toán

Ước lượng thời gian chạy, bộ nhớ và tối ưu hóa độ phức tạp thuật toán.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
comp-digits Số lượng ước số ⭐⭐⭐ Toán học Độ phức tạp thời gian
comp-pairs Đếm cặp số của An ⭐⭐ Toán học Độ phức tạp thời gian
comp-pow Trò chơi lũy thừa ⭐⭐ Toán học Độ phức tạp thời gian
comp-subseg Dãy con của Việt ⭐⭐ Toán học Độ phức tạp thời gian
comp-sum An và chiếc máy tính Toán học Độ phức tạp thời gian

1.3. Phép toán Bit và Thao tác Bit cơ bản

Thao tác trên bit nhị phân, bitmask cơ bản, đếm bit 1 và các bài toán tổ hợp bit.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
bit-count Đếm bit 1 Phép toán bit Phép toán bit
bit-power Lũy thừa của 2 Phép toán bit Phép toán bit
bit-single Số duy nhất Phép toán bit Phép toán bit
bit-subset Tập con may mắn ⭐⭐ Phép toán bit Phép toán bit
fun-clear Xóa bit 1 Phép toán bit Phép toán bit
fun-lsb Bit thấp nhất Phép toán bit Phép toán bit
fun-maxand Cặp AND lớn nhất ⭐⭐ Phép toán bit Phép toán bit
fun-pairxor Cặp XOR lớn nhất Phép toán bit Phép toán bit
fun-subsets Đếm tập con Phép toán bit Phép toán bit

1.4. Thuật toán Sắp xếp và Ứng dụng

Sắp xếp dữ liệu, hàm so sánh tùy biến, tìm trung vị và các ứng dụng sắp xếp.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
sort-basic Sắp xếp dãy số Thuật toán sắp xếp Thuật toán sắp xếp
sort-closest Cặp số gần nhau nhất ⭐⭐ Thuật toán sắp xếp Thuật toán sắp xếp
sort-desc Sắp xếp giảm dần Thuật toán sắp xếp Thuật toán sắp xếp
sort-distinct Số lượng giá trị khác nhau ⭐⭐ Thuật toán sắp xếp Thuật toán sắp xếp
sort-inversions Đếm số cặp nghịch thế ⭐⭐⭐ Thuật toán sắp xếp Thuật toán sắp xếp
sort-median Tìm số trung vị ⭐⭐ Thuật toán sắp xếp Thuật toán sắp xếp
sort-meetings Lịch họp tối đa ⭐⭐ Thuật toán sắp xếp Thuật toán sắp xếp
sort-pairs Ghép cặp mũ bảo hiểm ⭐⭐ Thuật toán sắp xếp Thuật toán sắp xếp
sort-parity Sắp xếp chẵn lẻ ⭐⭐ Thuật toán sắp xếp Thuật toán sắp xếp
sort-points Xếp hạng học sinh ⭐⭐ Thuật toán sắp xếp Thuật toán sắp xếp

1.5. Tìm kiếm Nhị phân và Tam phân

Tìm kiếm nhị phân trên mảng đã sắp xếp, tìm kiếm nhị phân trên không gian kết quả và tìm kiếm tam phân cực trị hàm lồi.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
bs-basic Tìm kiếm cơ bản Tìm kiếm nhị phân Tìm kiếm nhị phân
bs-cows Bố trí đàn bò ⭐⭐ Tìm kiếm nhị phân Tìm kiếm nhị phân
bs-factory Nhà máy sản xuất ⭐⭐ Tìm kiếm nhị phân Tìm kiếm nhị phân
bs-first-last Đoạn giá trị trùng nhau ⭐⭐ Tìm kiếm nhị phân Tìm kiếm nhị phân
bs-miss Số bị thiếu Tìm kiếm nhị phân Tìm kiếm nhị phân
bs-multiplication Bảng nhân kì diệu ⭐⭐⭐ Tìm kiếm nhị phân Tìm kiếm nhị phân
bs-split Chia mảng tối ưu ⭐⭐ Tìm kiếm nhị phân Tìm kiếm nhị phân
bs-sqrt Căn bậc hai số nguyên ⭐⭐ Tìm kiếm nhị phân Tìm kiếm nhị phân
bs-upper Đếm số ≤ X Tìm kiếm nhị phân Tìm kiếm nhị phân
bs-wood Máy cưa gỗ tối ưu ⭐⭐ Tìm kiếm nhị phân Tìm kiếm nhị phân
ts-angle Góc tối ưu ⭐⭐ Toán học Tìm kiếm nhị phân
ts-circle Hình tròn ⭐⭐ Toán học Tìm kiếm nhị phân
ts-convex Hàm lồi ⭐⭐ Toán học Tìm kiếm nhị phân
ts-cover Phủ sóng ⭐⭐ Toán học Tìm kiếm nhị phân
ts-delivery Giao hàng ⭐⭐ Toán học Tìm kiếm nhị phân
ts-distance Khoảng cách ⭐⭐ Toán học Tìm kiếm nhị phân
ts-find-max Tìm max đơn ⭐⭐⭐⭐⭐ Toán học Tìm kiếm nhị phân
ts-parabola Parabol ⭐⭐ Toán học Tìm kiếm nhị phân
ts-peak Đỉnh núi ⭐⭐ Toán học Tìm kiếm nhị phân

1.6. Kỹ thuật Hai con trỏ

Kỹ thuật duyệt hai con trỏ, cửa sổ trượt và tối ưu hóa không gian tìm kiếm tuyến tính.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
tp-closest 3 tổng gần nhất ⭐⭐ Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ
tp-cntpair Đếm cặp tổng ≤ X Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ
tp-diff Cặp hiệu X Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ
tp-ksum 4Sum ⭐⭐ Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ
tp-maxlen Đoạn con dài nhất Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ
tp-merge Trộn hai mảng Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ
tp-pairx Cặp tổng X Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ
tp-same Phần tử trùng Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ
tp-subk Đoạn con K phần tử khác ⭐⭐ Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ
tp-subsum Đoạn tổng S Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ
tp-three 3Sum Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ
tp-trap Hứng nước ⭐⭐ Kỹ thuật hai con trỏ Kỹ thuật hai con trỏ

1.7. Đệ quy, Quay lui và Tìm kiếm cục bộ

Duyệt toàn bộ không gian nghiệm bằng quay lui, nhánh cận và thuật toán tìm kiếm cục bộ (Local Search).

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
ls-coloring Tô màu ⭐⭐⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
ls-find-peak Tìm đỉnh ⭐⭐⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
ls-hill-1d Leo đồi 1D ⭐⭐⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
ls-hill-2d Leo đồi 2D ⭐⭐⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
ls-knapsack Ba lô ⭐⭐⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
ls-nqueen N-Hậu ⭐⭐⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
ls-schedule Xếp lịch ⭐⭐⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
ls-sudoku Sudoku ⭐⭐⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
ls-tsp Người du lịch ⭐⭐⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
rec-binary Xâu nhị phân Đệ quy & Quay lui Đệ quy và quay lui
rec-coin Đổi tổng ⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
rec-comb Tổ hợp Đệ quy & Quay lui Đệ quy và quay lui
rec-digit Đếm chữ số Đệ quy & Quay lui Đệ quy và quay lui
rec-fact Tính giai thừa Đệ quy & Quay lui Đệ quy và quay lui
rec-fibo Số Fibonacci Đệ quy & Quay lui Đệ quy và quay lui
rec-gcd GCD bằng đệ quy Đệ quy & Quay lui Đệ quy và quay lui
rec-knap Knapsack vét cạn ⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
rec-maze Đếm đường đi Đệ quy & Quay lui Đệ quy và quay lui
rec-mcolor Tô màu đồ thị ⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
rec-nqueen N-Queens ⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
rec-partition Phân hoạch số ⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
rec-perm Hoán vị Đệ quy & Quay lui Đệ quy và quay lui
rec-power Lũy thừa bằng đệ quy Đệ quy & Quay lui Đệ quy và quay lui
rec-subsetsum Tổng tập con Đệ quy & Quay lui Đệ quy và quay lui
rec-sudoku Sudoku ⭐⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui
rec-tower Tháp Hà Nội ⭐⭐ Đệ quy & Quay lui Đệ quy và quay lui

1.8. Kỹ thuật Gặp nhau ở giữa (Meet-in-the-middle)

Giảm độ phức tạp thời gian bằng cách chia đôi không gian trạng thái tìm kiếm.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
mitm-balanced Chia kẹo - Balanced Partition ⭐⭐⭐ Tìm kiếm nhị phân Meet in the middle
mitm-closest Tập con gần X nhất ⭐⭐⭐ Tìm kiếm nhị phân Meet in the middle
mitm-knap Cái túi - Meet in the Middle ⭐⭐⭐ Tìm kiếm nhị phân Meet in the middle
mitm-range Tập con tổng trong [L, R] ⭐⭐⭐ Tìm kiếm nhị phân Meet in the middle
mitm-subset-x Đếm tập con tổng X ⭐⭐⭐ Tìm kiếm nhị phân Meet in the middle

1.9. Thuật toán Tham lam

Lựa chọn tối ưu cục bộ để đạt tối ưu toàn cục, lập lịch công việc và tối ưu hóa tài nguyên.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
grd-activities Ngày hội thể thao Thuật toán tham lam Thuật toán tham lam
grd-assign-cookies Phát bánh quy Thuật toán tham lam Thuật toán tham lam
grd-boats Giải cứu hòn đảo ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-candy Phát kẹo ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-coin-change Đổi tiền cho khách Thuật toán tham lam Thuật toán tham lam
grd-gas-station Vòng quanh trạm xăng ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-huffman Mã hóa văn phòng ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-interval-part Xếp phòng học ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-job-deadline Xưởng sản xuất ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-knapsack-frac Xe tải chở hàng ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-lemonade Tiền lẻ nước chanh Thuật toán tham lam Thuật toán tham lam
grd-max-subarray Đầu tư chứng khoán Thuật toán tham lam Thuật toán tham lam
grd-max-units Kho hàng xe tải ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-merge-sticks Gộp que gỗ ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-min-arrows Bong bóng và mũi tên ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-partition-labels Chia đoạn ký tự ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-platforms Ga tàu hỏa ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-remove-digits Số nhỏ nhất ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-two-city Đi công tác ⭐⭐ Thuật toán tham lam Thuật toán tham lam
grd-wiggle Dãy zigzag ⭐⭐ Thuật toán tham lam Thuật toán tham lam

1.10. Lý thuyết Trò chơi và Cắt tỉa Alpha-Beta

Trò chơi tổ hợp, đối kháng hai người, trạng thái thắng thua và thuật toán Minimax kết hợp Alpha-Beta.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
ab-coin-pick Nhặt xu ⭐⭐ Quy hoạch động Lý thuyết trò chơi
ab-coloring Tô màu ⭐⭐ Quy hoạch động Lý thuyết trò chơi
ab-divisor Ước số ⭐⭐ Quy hoạch động Lý thuyết trò chơi
ab-minimax-basic Cây game - Minimax cơ bản ⭐⭐ Quy hoạch động Lý thuyết trò chơi
ab-prime-game Số nguyên tố ⭐⭐ Quy hoạch động Lý thuyết trò chơi
ab-stone-div Chia đá ⭐⭐ Quy hoạch động Lý thuyết trò chơi
ab-subtract Trừ số ⭐⭐ Quy hoạch động Lý thuyết trò chơi
ab-tree-game Game trên cây ⭐⭐ Quy hoạch động Lý thuyết trò chơi
ab-win-game Ai thắng ⭐⭐⭐⭐⭐ Quy hoạch động Lý thuyết trò chơi

PHẦN II: CẤU TRÚC DỮ LIỆU TUYẾN TÍNH VÀ CƠ BẢN (LINEAR & FUNDAMENTAL DATA STRUCTURES)

2.1. Mảng cộng dồn và Mảng hiệu (Prefix Sum & Difference Array)

Tiền xử lý mảng cộng dồn 1D/2D, mảng hiệu, thuật toán Kadane và truy vấn đoạn.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
ps-2d-diff Mảng hiệu 2D ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Mảng, Stack, Prefix Sum
ps-diff Cơn mưa đầu mùa Cấu trúc dữ liệu Mảng, Stack, Prefix Sum
ps-equal Kho báu dưới lòng đất Cấu trúc dữ liệu Mảng, Stack, Prefix Sum
ps-grid Vườn trái cây Cấu trúc dữ liệu Mảng, Stack, Prefix Sum
ps-kadane Sòng bạc may rủi Cấu trúc dữ liệu Mảng, Stack, Prefix Sum
ps-matrix-diff Ma trận hiệu ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Mảng, Stack, Prefix Sum
ps-max-sub Đoạn tổng lớn ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Mảng, Stack, Prefix Sum
ps-median-sliding Trung vị trượt ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Mảng, Stack, Prefix Sum
ps-paint Tô hàng rào Cấu trúc dữ liệu Mảng, Stack, Prefix Sum
ps-sub-sum-k Đoạn tổng K ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Mảng, Stack, Prefix Sum
ps-sum Truy vấn tổng Cấu trúc dữ liệu Mảng, Stack, Prefix Sum
ps-xor-range XOR đoạn ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Mảng, Stack, Prefix Sum

2.2. Ngăn xếp và Ngăn xếp đơn điệu (Stack & Monotonic Stack)

Cấu trúc dữ liệu ngăn xếp, kiểm tra biểu thức ngoặc và Monotonic Stack tìm phần tử kế cận.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
st-balanced Ngoặc nhiều loại ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Stack nâng cao
st-bracket Ngoặc đơn vui nhộn ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
st-max-rect HCN lớn nhất ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Stack nâng cao
st-min-stack Stack min ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Stack nâng cao
st-next Đội hình thể thao ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
st-sliding-stack Stack trượt ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-calc-w-paren Tính giá trị biểu thức có ngoặc ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-histogram Hình chữ nhật lớn nhất trong biểu đồ ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-infix-eval Tính giá trị biểu thức trung tố ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-longest-paren Dãy ngoặc đúng dài nhất ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-max-rect-matrix Hình chữ nhật lớn nhất trong ma trận nhị phân ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-next-greater Phần tử lớn hơn đầu tiên bên phải ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-next-smaller Phần tử nhỏ hơn đầu tiên bên phải ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-postfix-eval Tính giá trị biểu thức hậu tố ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-prev-greater Phần tử lớn hơn đầu tiên bên trái ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-remove-digits Xóa K chữ số để được số nhỏ nhất ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-remove-dups Xóa ký tự trùng để được xâu nhỏ nhất ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-stock-span Stock Span ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-sum-sub-min Tổng giá trị nhỏ nhất của các subarray ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-trap-rain Tính lượng nước hứng được ⭐⭐ Cấu trúc dữ liệu Stack nâng cao
stk-valid-paren Kiểm tra dãy ngoặc đúng ⭐⭐ Cấu trúc dữ liệu Stack nâng cao

2.3. Hàng đợi và Hàng đợi hai đầu (Queue & Deque)

Mô phỏng hàng đợi cơ bản, hàng đợi hai đầu Deque và kỹ thuật duy trì cực trị cửa sổ trượt.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
dq-basic Mô Phỏng Deque Cơ Bản Cấu trúc dữ liệu Deque & Sliding Window
dq-diff-limit Chênh Lệch Giới Hạn ⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
dq-first-neg Số Âm Đầu Tiên Trong Cửa Sổ ⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
dq-longest-distinct Đoạn Con Không Trùng Lặp Dài Nhất ⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
dq-max-min-sum Tổng Max Min Của Cửa Sổ ⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
dq-sliding-max Cửa Sổ Trượt Lớn Nhất ⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
dq-sliding-min Cửa Sổ Trượt Nhỏ Nhất ⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
dq-sliding-sum Tổng Cửa Sổ Trượt ⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-basic Queue cơ bản ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-card Trò chơi đánh bài ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-circular-deque Hang doi hai dau ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-first-neg Số âm đầu tiên trong cửa sổ ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-first-unique Ky tu dau tien khong lap ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-generate Sinh số nhị phân ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-interleave Xen kẽ queue ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-josephus Josephus với Queue ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-queue-stack Queue bang hai Stack ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-reversal Đảo K phần tử đầu ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-rotate Xoay hàng đợi ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-sim Mô phỏng hàng chờ ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-sliding-max Cua so truot lon nhat ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-sliding-sum Tổng cửa sổ trượt ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window
q-topo Thu tu topo ⭐⭐⭐ Cấu trúc dữ liệu Deque & Sliding Window

2.4. Danh sách liên kết (Linked List)

Thao tác trên danh sách liên kết đơn, liên kết đôi và bài toán Josephus.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
ll-basic Danh sách liên kết cơ bản ⭐⭐⭐ Cấu trúc dữ liệu Danh sách liên kết
ll-cycle Phát hiện chu trình ⭐⭐⭐ Cấu trúc dữ liệu Danh sách liên kết
ll-josephus Josephus ⭐⭐⭐ Cấu trúc dữ liệu Danh sách liên kết
ll-merge Gộp hai danh sách ⭐⭐⭐ Cấu trúc dữ liệu Danh sách liên kết
ll-middle Phần tử ở giữa ⭐⭐⭐ Cấu trúc dữ liệu Danh sách liên kết
ll-remove-nth Xóa phần tử thứ N từ cuối ⭐⭐⭐ Cấu trúc dữ liệu Danh sách liên kết
ll-reverse Đảo ngược danh sách ⭐⭐⭐ Cấu trúc dữ liệu Danh sách liên kết
ll-search Tìm kiếm trong danh sách ⭐⭐⭐ Cấu trúc dữ liệu Danh sách liên kết

2.5. Hàng đợi ưu tiên và Cấu trúc Heap (Priority Queue & Heap)

Cài đặt Min-Heap, Max-Heap, tìm phần tử thứ K và gộp danh sách sắp xếp.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
heap-basic Heap cơ bản Cấu trúc dữ liệu Heap
heap-dijkstra Đường đi ngắn nhất (Dijkstra) Cấu trúc dữ liệu Heap
heap-k-closest K điểm gần gốc nhất Cấu trúc dữ liệu Heap
heap-k-sum Tổng lớn nhất K cặp Cấu trúc dữ liệu Heap
heap-kth-min Phần tử nhỏ thứ K Cấu trúc dữ liệu Heap
heap-kth-stream Phần tử lớn thứ K trong luồng Cấu trúc dữ liệu Heap
heap-median Median trong luồng dữ liệu Cấu trúc dữ liệu Heap
heap-merge-sorted Gộp K dãy đã sắp xếp Cấu trúc dữ liệu Heap
heap-min-rooms Tối thiểu phòng họp Cấu trúc dữ liệu Heap
heap-nearly-sorted Sắp xếp mảng gần đúng Cấu trúc dữ liệu Heap
heap-reorganize Sắp xếp lại xâu Cấu trúc dữ liệu Heap
heap-sliding-median Median cửa sổ trượt Cấu trúc dữ liệu Heap
heap-task-scheduler Lập lịch tác vụ Cấu trúc dữ liệu Heap
heap-top-k K phần tử lớn nhất Cấu trúc dữ liệu Heap
heap-ugly-number Số ugly thứ N Cấu trúc dữ liệu Heap

2.6. Bảng băm (Hash Table)

Bảng băm tra cứu O(1), đếm tần suất và xử lý các phần tử phân biệt.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
ht-anagram Nhóm anagram ⭐⭐⭐ Cấu trúc dữ liệu Bảng băm
ht-basic Bảng băm cơ bản ⭐⭐⭐ Cấu trúc dữ liệu Bảng băm
ht-distinct Đếm giá trị phân biệt ⭐⭐⭐ Cấu trúc dữ liệu Bảng băm
ht-first-repeat Phần tử lặp đầu tiên ⭐⭐⭐ Cấu trúc dữ liệu Bảng băm
ht-freq Đếm tần số ⭐⭐⭐ Cấu trúc dữ liệu Bảng băm
ht-intersection Giao của hai mảng ⭐⭐⭐ Cấu trúc dữ liệu Bảng băm
ht-longest-zero Đoạn con dài nhất tổng 0 ⭐⭐⭐ Cấu trúc dữ liệu Bảng băm
ht-pair-sum Cặp tổng X ⭐⭐⭐ Cấu trúc dữ liệu Bảng băm
ht-subarray-zero Đếm đoạn con tổng 0 ⭐⭐⭐ Cấu trúc dữ liệu Bảng băm
ht-symmetric Hiệu đối xứng ⭐⭐⭐ Cấu trúc dữ liệu Bảng băm

2.7. Rời rạc hóa tọa độ (Coordinate Compression)

Nén không gian giá trị phục vụ các cấu trúc dữ liệu và thuật toán nâng cao.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
disc-basic Rời rạc hoá mảng ⭐⭐⭐ Cấu trúc dữ liệu Rời rạc hóa
disc-closest Số lớn hơn X gần nhất ⭐⭐⭐ Cấu trúc dữ liệu Rời rạc hóa
disc-distinct Số lượng giá trị khác nhau ⭐⭐⭐ Cấu trúc dữ liệu Rời rạc hóa
disc-freq Tần số giá trị ⭐⭐⭐ Cấu trúc dữ liệu Rời rạc hóa
disc-pair Cặp số bằng nhau ⭐⭐⭐ Cấu trúc dữ liệu Rời rạc hóa
disc-range-freq Truy vấn tần số trong đoạn ⭐⭐⭐ Cấu trúc dữ liệu Rời rạc hóa
disc-sweep Đoạn phủ dày nhất ⭐⭐⭐ Cấu trúc dữ liệu Rời rạc hóa

2.8. Cây tìm kiếm nhị phân và Skip List (BST & Skip List)

Cây tìm kiếm nhị phân cân bằng (BST) và danh sách liên kết phân tầng (Skip List).

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
bst-balance Kiểm tra BST cân bằng ⭐⭐ Cấu trúc dữ liệu Skip list
bst-delete Xoá nút khỏi BST ⭐⭐ Cấu trúc dữ liệu Skip list
bst-inorder Duyệt inorder của BST ⭐⭐ Cấu trúc dữ liệu Skip list
bst-insert Chèn vào BST ⭐⭐ Cấu trúc dữ liệu Skip list
bst-kth-min Phần tử nhỏ thứ K trong BST ⭐⭐ Cấu trúc dữ liệu Skip list
bst-lca Tổ tiên chung gần nhất trong BST ⭐⭐ Cấu trúc dữ liệu Skip list
bst-pred-succ Predecessor và Successor trong BST ⭐⭐ Cấu trúc dữ liệu Skip list
bst-range Đếm số nút trong khoảng ⭐⭐ Cấu trúc dữ liệu Skip list
bst-search Tìm kiếm trong BST ⭐⭐ Cấu trúc dữ liệu Skip list
bst-validate Kiểm tra BST hợp lệ ⭐⭐ Cấu trúc dữ liệu Skip list
sl-insert-search Tìm Kiếm Và Thêm Phần Tử Cấu trúc dữ liệu Skip list
sl-min-max Tìm Min-Max Động Cấu trúc dữ liệu Skip list
sl-order-statistics Thứ Tự Phần Tử ⭐⭐ Cấu trúc dữ liệu Skip list
sl-pred-succ Tìm Số Kế Cận ⭐⭐ Cấu trúc dữ liệu Skip list
sl-range-sum Tổng Trong Khoảng ⭐⭐ Cấu trúc dữ liệu Skip list
sl-sliding-median Trung Vị Trượt ⭐⭐⭐ Cấu trúc dữ liệu Skip list

PHẦN III: CẤU TRÚC DỮ LIỆU NÂNG CAO VÀ TRUY VẤN ĐOẠN (ADVANCED TREE & RANGE STRUCTURES)

3.1. Cây Fenwick (Binary Indexed Tree) 1D và 2D

Truy vấn điểm, cập nhật đoạn và xử lý bảng 2D với độ phức tạp O(log N).

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
b2d-coord-comp Ngôi Sao Trên Bầu Trời ⭐⭐⭐ Cấu trúc dữ liệu Cây Fenwick
b2d-invert Lật Bóng Đèn Ma Trận ⭐⭐ Cấu trúc dữ liệu Cây Fenwick
b2d-max-subgrid Tổng Lưới Con Lớn Nhất ⭐⭐⭐ Cấu trúc dữ liệu Cây Fenwick
b2d-nested-rect Khung Tranh Bao Nhau ⭐⭐⭐ Cấu trúc dữ liệu Cây Fenwick
b2d-point-add Cập Nhật Điểm Tổng Lưới ⭐⭐ Cấu trúc dữ liệu Cây Fenwick
b2d-range-add Cộng Đoạn Lưới Truy Vấn Điểm ⭐⭐ Cấu trúc dữ liệu Cây Fenwick
b2d-range-sum Cộng Đoạn Lưới Tính Tổng ⭐⭐⭐ Cấu trúc dữ liệu Cây Fenwick
b2d-rect-xor Tổng XOR Vùng Hình Chữ Nhật ⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-2d-point Đếm Cây Nông Trại 2D ⭐⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-2d-range Điều Khiển LED 2D ⭐⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-distinct Số Màu Sắc Phân Biệt ⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-inv-cnt Đếm Cặp Nghịch Thế ⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-kth-small Tìm Điểm Nhỏ Thứ K ⭐⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-lex-min Hoán Vị Nhỏ Nhất Từ Điển ⭐⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-nested Đếm Đoạn Thẳng Bao Nhau ⭐⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-point-add Cộng Điểm Tính Tổng ⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-prefix-max Giá Cổ Phiếu Lớn Nhất ⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-range-add Cộng Đoạn Truy Vấn Điểm ⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-range-sum Cộng Đoạn Tính Tổng Đoạn ⭐⭐ Cấu trúc dữ liệu Cây Fenwick
bit-salary Quản Lý Mức Lương ⭐⭐ Cấu trúc dữ liệu Cây Fenwick

3.2. Cây phân đoạn (Segment Tree)

Truy vấn khoảng (RMQ, Sum, GCD) và cập nhật khoảng với kỹ thuật Lazy Propagation.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
it-any-intersect Tồn Tại Đoạn Giao Nhau Cấu trúc dữ liệu Cây phân đoạn
it-count-intersect Đếm Số Lượng Đoạn Giao Nhau ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
it-find-all Liệt Kê Các Đoạn Giao Nhau ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
it-largest-overlap Phần Giao Nhau Lớn Nhất ⭐⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
it-max-right-int Đoạn Giao Có Mút Phải Lớn Nhất ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
it-min-len-int Độ Dài Giao Nhỏ Nhất ⭐⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
it-point-query Truy Vấn Điểm Thuộc Đoạn ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
it-superset-query Truy Vấn Bao Phủ Hoàn Toàn ⭐⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-2d-basic Cập Nhật Điểm Tổng Ma Trận Con ⭐⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-basic-and AND Bit Trên Đoạn ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-basic-gcd GCD Trên Đoạn ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-basic-max Giá Trị Lớn Nhất Trên Đoạn ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-basic-min Giá Trị Nhỏ Nhất Trên Đoạn ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-basic-or OR Bit Trên Đoạn ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-count-min Tìm Min Và Đếm Tần Suất ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-count-ranges Đếm Đoạn Con Min Bằng Giá Trị Cho Trước ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-distinct-cnt Đếm Giá Trị Phân Biệt Đoạn ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-dynamic Cây Phân Đoạn Động ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-first-min-idx Vị Trí Đầu Tiên Của Min ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-gcd-query Truy Vấn Ước Chung Lớn Nhất ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-inverse-count Đếm Số Cặp Nghịch Thế ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-kth-min-range Phần Tử Nhỏ Thứ K ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-kth-zero Tìm Số Không Thứ K ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-longest-eq-gcd Đoạn Con GCD Lớn Hơn 1 Bất Kỳ ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-max-query Truy Vấn Lớn Nhất Đoạn ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-max-sub-gcd Đoạn Con GCD Lớn Hơn 1 ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-max-subarray Đoạn Con Tổng Lớn Nhất ⭐⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-merge Tần Suất Màu Sắc Cây Con ⭐⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-min-query Truy Vấn Nhỏ Nhất Đoạn ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-pair-gcd-max GCD Lớn Nhất Của Cặp Kề ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-pair-of-nums Đoạn Chia Hết Cho Phần Tử Đầu ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-persistent-kth Tìm Phần Tử Nhỏ Thứ K ⭐⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-persistent-sum Tổng Đoạn Trên Lịch Sử ⭐⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-range-add Cập Nhật Đoạn Cộng Giá Trị ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-range-chmin Chmin Đoạn Và Tính Tổng ⭐⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-range-gcd-cnt Đếm Số Bằng GCD Trên Đoạn ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-range-lcm LCM Trên Đoạn ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-range-min Cộng Đoạn Và Tìm Nhỏ Nhất ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-range-min-max Hiệu Lớn Nhất Bé Nhất ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-range-mul-add Cộng Nhân Đoạn Tính Tổng ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-range-set Gán Đoạn Và Tính Tổng ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-range-set-min Gán Đoạn Và Tìm Nhỏ Nhất ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-range-sum Cộng Đoạn Và Tính Tổng ⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-sum-query Truy Vấn Tổng Đoạn Cấu trúc dữ liệu Cây phân đoạn
st-sweepline-area Hợp Diện Tích Hình Chữ Nhật ⭐⭐⭐ Cấu trúc dữ liệu Cây phân đoạn
st-tree-path Cập Nhật Đường Đi Trên Cây ⭐⭐⭐ Cấu trúc dữ liệu Cây phân đoạn

3.3. Cây phân đoạn động và Bền vững (Persistent Segment Tree)

Lưu trữ lịch sử các phiên bản cây và giải quyết bài toán RMQ / Distinct online.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
pst-history-min Tìm Cực Tiểu Trên Lịch Sử ⭐⭐⭐ Cấu trúc dữ liệu Persistent Segment Tree
pst-mex-query Tìm MEX Trên Khoảng Online ⭐⭐⭐ Cấu trúc dữ liệu Persistent Segment Tree
pst-online-distinct Đếm Số Khác Biệt Online ⭐⭐⭐ Cấu trúc dữ liệu Persistent Segment Tree

3.4. Cây tiền tố (Trie)

Lưu trữ tập từ vựng, xử lý tiền tố xâu và tìm kiếm cặp XOR lớn nhất.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
trie-autocomplete Gợi Ý Từ Khóa Autocomplete ⭐⭐ Cấu trúc dữ liệu Cây tiền tố Trie
trie-insert-search Tập Từ Vựng Cây Tiền Tố Cấu trúc dữ liệu Cây tiền tố Trie
trie-longest-prefix Tiền Tố Chung Dài Nhất ⭐⭐ Cấu trúc dữ liệu Cây tiền tố Trie
trie-prefix-count Đếm Tần Suất Tiền Tố ⭐⭐ Cấu trúc dữ liệu Cây tiền tố Trie
trie-word-break Phân Tách Từ ⭐⭐⭐ Cấu trúc dữ liệu Cây tiền tố Trie
trie-xor-limit Cặp XOR Giới Hạn ⭐⭐⭐ Cấu trúc dữ liệu Cây tiền tố Trie
trie-xor-max Cặp XOR Lớn Nhất ⭐⭐ Cấu trúc dữ liệu Cây tiền tố Trie
trie-xor-min Cặp XOR Nhỏ Nhất ⭐⭐ Cấu trúc dữ liệu Cây tiền tố Trie

3.5. Cây Wavelet (Wavelet Tree)

Truy vấn thống kê thứ tự K và đếm số lượng trong đoạn giá trị với O(log Sigma).

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
wt-count-less Đếm Số Nhỏ Hơn Hoặc Bằng X Cấu trúc dữ liệu Wavelet Tree
wt-kth-largest K-th Largest Trên Đoạn ⭐⭐ Cấu trúc dữ liệu Wavelet Tree
wt-kth-smallest K-th Smallest Trên Đoạn Cấu trúc dữ liệu Wavelet Tree
wt-median-range Số Trung Vị Trên Đoạn ⭐⭐ Cấu trúc dữ liệu Wavelet Tree
wt-next-greater-val Giá Trị Kế Tiếp Lớn Hơn ⭐⭐ Cấu trúc dữ liệu Wavelet Tree
wt-percentile Tìm Phân Vị Trên Đoạn ⭐⭐⭐ Cấu trúc dữ liệu Wavelet Tree
wt-prev-smaller-val Giá Trị Kế Tiếp Nhỏ Hơn ⭐⭐ Cấu trúc dữ liệu Wavelet Tree
wt-range-count-in Đếm Số Trong Đoạn Giá Trị ⭐⭐ Cấu trúc dữ liệu Wavelet Tree
wt-range-freq Tần Suất Xuất Hiện Trong Khoảng ⭐⭐ Cấu trúc dữ liệu Wavelet Tree
wt-rect-count Đếm Điểm Trong Hình Chữ Nhật ⭐⭐⭐ Cấu trúc dữ liệu Wavelet Tree

3.6. Cây Li Chao (Li Chao Tree)

Duy trì tập các hàm bậc nhất và truy vấn cực trị hàm số tại tọa độ x.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
lc-2d-rect Li Chao 2D ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Convex Hull Trick
lc-basic Duong thang - Li Chao Tree co ban ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Convex Hull Trick
lc-basic-easy Đường thẳng dễ ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Convex Hull Trick
lc-dp-basic DP co ban voi Li Chao ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Convex Hull Trick
lc-dp-fence Hang rao - DP CHT dong ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Convex Hull Trick
lc-dp-land Mua dat - DP mua dat dong ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Convex Hull Trick
lc-line-add-rm Them va xoa duong thang ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Convex Hull Trick
lc-max-query Truy vấn giá trị lớn nhất ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Convex Hull Trick
lc-persist Li Chao bền vững ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Convex Hull Trick
lc-range Doan thang - Them xoa doan ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Convex Hull Trick

3.7. Nhảy nhị phân trên mảng (Binary Lifting on Array)

Thuật toán nhảy nhị phân định vị phần tử và phân hoạch đoạn con.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
bla-cycle-det Tìm Chu Kỳ ⭐⭐ Cấu trúc dữ liệu Binary Lifting trên mảng
bla-jump-limit Nhảy Đến Khi Vượt Ngưỡng ⭐⭐ Cấu trúc dữ liệu Binary Lifting trên mảng
bla-k-step Nhảy K Bước Cấu trúc dữ liệu Binary Lifting trên mảng
bla-kth-distinct Số Thứ K Khác Biệt ⭐⭐⭐ Cấu trúc dữ liệu Binary Lifting trên mảng
bla-min-edge Giá Trị Cực Tiểu Khi Nhảy ⭐⭐ Cấu trúc dữ liệu Binary Lifting trên mảng
bla-next-greater Nhảy Phải Số Lớn Hơn ⭐⭐ Cấu trúc dữ liệu Binary Lifting trên mảng
bla-partition Phân Hoạch Đoạn Con ⭐⭐⭐ Cấu trúc dữ liệu Binary Lifting trên mảng
bla-reach-steps Số Bước Để Đến V ⭐⭐ Cấu trúc dữ liệu Binary Lifting trên mảng
bla-segment-cover Phủ Đoạn ⭐⭐⭐ Cấu trúc dữ liệu Binary Lifting trên mảng
bla-sliding-sum Tổng Trượt Vượt Ngưỡng ⭐⭐ Cấu trúc dữ liệu Binary Lifting trên mảng

3.8. Thuật toán Mo và Xử lý truy vấn căn bậc hai (Mo's Algorithm)

Kỹ thuật sắp xếp và xử lý truy vấn offline chia khối căn bậc hai.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
mo-distinct [Mo's] Đếm Khác ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Thuật toán Mo
mo-distinct-basic Đếm khác cơ bản ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Thuật toán Mo
mo-freq [Mo's] Tần Suất ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Thuật toán Mo
mo-inversion [Mo's] Nghịch Thế ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Thuật toán Mo
mo-median [Mo's] Trung Vị ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Thuật toán Mo
mo-mode [Mo's] Phổ Biến ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Thuật toán Mo
mo-tree [Mo's] Trên Cây ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Thuật toán Mo
mo-tree-update Mo's cây động ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Thuật toán Mo
mo-update [Mo's] Cập Nhật ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Thuật toán Mo
mo-xor-pair [Mo's] Cặp XOR 0 ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Thuật toán Mo

PHẦN IV: THUẬT TOÁN ĐỒ THỊ (GRAPH ALGORITHMS)

4.1. Duyệt đồ thị BFS, DFS và 0-1 BFS

Duyệt không gian trạng thái, kiểm tra liên thông, chu trình và tìm đường đi ngắn nhất đồ thị 0-1.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
bfs01-gridwall Bình vượt mê cung Đồ thị BFS & DFS trên đồ thị
bfs01-parity Tuyến đường chẵn lẻ Đồ thị BFS & DFS trên đồ thị
bfs01-revedge Tý đảo hướng đường ⭐⭐ Đồ thị BFS & DFS trên đồ thị
bfs01-stepup Leo núi nhân tạo ⭐⭐ Đồ thị BFS & DFS trên đồ thị
bfs01-subway Đổi tàu điện ngầm ⭐⭐⭐ Đồ thị BFS & DFS trên đồ thị
bfs01-switch Công tắc cửa ngầm Đồ thị BFS & DFS trên đồ thị
bfs01-teleport Mạng lưới dịch chuyển ⭐⭐ Đồ thị BFS & DFS trên đồ thị
bfs01-toll Trạm thu phí xa lộ Đồ thị BFS & DFS trên đồ thị
bfs01-traffic Ngã tư luồng ưu tiên ⭐⭐ Đồ thị BFS & DFS trên đồ thị
bfs01-turn Lái xe ít rẽ nhất ⭐⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-alien-dict Bảng Chữ Cái Ngôn Ngữ Lạ ⭐⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-all-paths Số Lượng Đường Đi ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-bfs-basic Duyệt BFS Cơ Bản Đồ thị BFS & DFS trên đồ thị
graph-biconnected Thành Phần Liên Thông Đôi ⭐⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-bipartite Đồ Thị Hai Phía ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-clone Sao Chép Đồ Thị Đồ thị BFS & DFS trên đồ thị
graph-cut-bridges Tìm Cầu Của Đồ Thị ⭐⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-cut-vertices Tìm Khớp Của Đồ Thị ⭐⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-cycle-dir Chu Trình Có Hướng ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-cycle-undir Chu Trình Vô Hướng ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-dfs-basic Duyệt DFS Cơ Bản Đồ thị BFS & DFS trên đồ thị
graph-euler-path Hành Trình Bay Hợp Lệ ⭐⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-evaluate-div Tính Giá Trị Biểu Thức Chia ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-flood-fill Thuật Toán Tô Màu Lưới Đồ thị BFS & DFS trên đồ thị
graph-keys-rooms Chìa Khóa Và Phòng Khóa Đồ thị BFS & DFS trên đồ thị
graph-longest-dag Đường Dài Nhất Trên DAG ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-maze-shortest Tìm Đường Trong Mê Cung ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-mht Cây Chiều Cao Tối Thiểu ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-num-provinces Số Lượng Tỉnh Thành Đồ thị BFS & DFS trên đồ thị
graph-redundant-conn Cạnh Dư Thừa ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-rotting Cam Lây Thối ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-safe-states Tìm Đỉnh An Toàn ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-scc-tarjan Thành Phần Liên Thông Mạnh ⭐⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-shortest-path Đường Đi Ngắn Nhất ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-snakes-ladders Rắn Và Thang Máy ⭐⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-topo-sort Sắp Xếp Tô-pô ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-tree-center Tâm Của Cây ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-tree-diameter Đường Kính Của Cây ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-water-flow Nước Chảy Hai Đại Dương ⭐⭐ Đồ thị BFS & DFS trên đồ thị
graph-word-ladder Chuỗi Biến Đổi Từ Vựng ⭐⭐⭐ Đồ thị BFS & DFS trên đồ thị

4.2. Cấu trúc tập hợp rời nhau (DSU & DSU Rollback)

Cấu trúc Disjoint Set Union nén đường và hỗ trợ quay lui trạng thái (Rollback).

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
dsu-basic Gộp tập hợp cơ bản Cấu trúc dữ liệu Disjoint Set Union
dsu-components Số thành phần liên thông Cấu trúc dữ liệu Disjoint Set Union
dsu-cycle Phát hiện chu trình Cấu trúc dữ liệu Disjoint Set Union
dsu-enemies Bạn và thù Cấu trúc dữ liệu Disjoint Set Union
dsu-kruskal Cây khung nhỏ nhất (Kruskal) Cấu trúc dữ liệu Disjoint Set Union
dsu-max-size Nhóm bạn lớn nhất Cấu trúc dữ liệu Disjoint Set Union
dsu-offline DSU offline — Xoá cạnh Cấu trúc dữ liệu Disjoint Set Union
dsu-query-size Truy vấn kích thước Cấu trúc dữ liệu Disjoint Set Union
dsu-same Quan hệ tương đương Cấu trúc dữ liệu Disjoint Set Union
dsu-size Kích thước tập hợp Cấu trúc dữ liệu Disjoint Set Union
dsur-basic Hệ Thống Quản Lý Nhóm Nghiên Cứu ⭐⭐ Cấu trúc dữ liệu Disjoint Set Union
dsur-bipartite Đồ Thị Hai Phía Động ⭐⭐⭐ Cấu trúc dữ liệu Disjoint Set Union
dsur-connect Số Vùng Kết Nối ⭐⭐ Cấu trúc dữ liệu Disjoint Set Union
dsur-mst Cây Khung Động ⭐⭐⭐ Cấu trúc dữ liệu Disjoint Set Union
dsur-online Đồ Thị Động ⭐⭐ Cấu trúc dữ liệu Disjoint Set Union
dsur-persistence Lưu Trữ Phiên Bản Dữ Liệu ⭐⭐ Cấu trúc dữ liệu Disjoint Set Union
dsur-sum Ngân Hàng Dữ Liệu Phân Tán ⭐⭐ Cấu trúc dữ liệu Disjoint Set Union
dsur-timeline Dòng Thời Gian Kết Nối ⭐⭐ Cấu trúc dữ liệu Disjoint Set Union

4.3. Cây khung nhỏ nhất (MST) và Sắp xếp Tô-pô

Thuật toán Kruskal, Prim xây dựng cây khung và tìm thứ tự Tô-pô trên đồ thị có hướng không chu trình.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
mst-cable Lắp đặt cáp mạng Đồ thị MST, Dijkstra, Topo Sort
mst-cliques Xây dựng cầu cảng ⭐⭐ Đồ thị MST, Dijkstra, Topo Sort
mst-connect Kết nối nguồn điện ⭐⭐ Đồ thị MST, Dijkstra, Topo Sort
mst-forest Phân cụm động vật ⭐⭐ Đồ thị MST, Dijkstra, Topo Sort
mst-k-comp Kết nối các khu vực ⭐⭐ Đồ thị MST, Dijkstra, Topo Sort
mst-maxedge Hành trình an toàn ⭐⭐ Đồ thị MST, Dijkstra, Topo Sort
mst-reduce Tối ưu hóa mạng lưới ⭐⭐ Đồ thị MST, Dijkstra, Topo Sort
mst-road Tuyến đường liên tỉnh Đồ thị MST, Dijkstra, Topo Sort
topo-alien Mật thư cổ đại ⭐⭐ Đồ thị MST, Dijkstra, Topo Sort
topo-build Xây dựng căn nhà Đồ thị MST, Dijkstra, Topo Sort
topo-course Chọn môn đăng ký học Đồ thị MST, Dijkstra, Topo Sort
topo-critical Đường găng dự án ⭐⭐ Đồ thị MST, Dijkstra, Topo Sort
topo-cycle Phát hiện điểm nghẽn ⭐⭐ Đồ thị MST, Dijkstra, Topo Sort
topo-lex Lập lịch ưu tiên từ điển ⭐⭐ Đồ thị MST, Dijkstra, Topo Sort
topo-recipe Pha chế độc dược ⭐⭐ Đồ thị MST, Dijkstra, Topo Sort
topo-schedule Lập lịch công việc Đồ thị MST, Dijkstra, Topo Sort

4.4. Đường đi ngắn nhất (Dijkstra, Bellman-Ford, SPFA, Floyd-Warshall)

Thuật toán tìm đường đi ngắn nhất đơn nguồn và đa nguồn trên đồ thị có trọng số.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
bf-arbitrage Tỷ giá chênh lệch ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
bf-cycle Vòng lặp thời gian ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
bf-island Neo đậu tránh bão ⭐⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
bf-limit Hành trình có điều kiện ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
bf-longest Hành trình cổ vật ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
bf-maxstep Địa chấn lòng đất ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
bf-negative Đầu tư năng lượng Đồ thị Floyd-Warshall & Bellman-Ford
bf-path Đồng bộ năng lượng hệ thống ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
bf-safety Hệ số an toàn ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
bf-shortest Hành trình xuyên thung lũng Đồ thị Floyd-Warshall & Bellman-Ford
bf-teleport Nghịch lý thời gian ⭐⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
bf-toll Hành trình tối ưu ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
bf-transit Giới hạn số chặng bay ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-charge Trạm sạc xe điện ⭐⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-edges Đường đi ưu tiên ít cạnh ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-flight Đặt vé máy bay ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-fuel Bình xăng giới hạn ⭐⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-grid Mê cung trọng số ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-hwy Xa lộ và quốc lộ ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-k-path Hành trình ngắn thứ K ⭐⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-matrix Tìm đường đồ thị đầy ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-minimax Độ dốc tối thiểu ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-multi Giao hàng từ nhiều kho ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-repair Sửa chữa đường bộ ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-rev Đi ngược chiều tối thiểu ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
dij-shortest Đường đi ngắn nhất Đồ thị Floyd-Warshall & Bellman-Ford
dij-weight Giới hạn tải trọng ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
fw-basic Liên lạc nội bộ Đồ thị Floyd-Warshall & Bellman-Ford
fw-bypass Đóng cửa sửa đường ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
fw-central Trạm cứu hỏa trung tâm ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
fw-density Mạng lưới dày đặc ⭐⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
fw-diameter Đường kính mạng lưới ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
fw-dynamic Cầu nối giao thông mới ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
fw-hubs Các trung tâm trung chuyển ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
fw-maxweight Mạng lưới tải trọng ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
fw-minimax Hành trình êm ái ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
fw-multicycle Lan truyền chu trình âm ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
fw-reachable Mạng lưới giao thông Đồ thị Floyd-Warshall & Bellman-Ford
fw-transit Xây dựng trạm trung chuyển ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
spfa-basic Hành trình thu thập Đồ thị Floyd-Warshall & Bellman-Ford
spfa-cycle Bẫy thời gian ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
spfa-detect Khai thác tài nguyên Đồ thị Floyd-Warshall & Bellman-Ford
spfa-grid Dịch chuyển trên lưới ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
spfa-k-neg Chuyến đi giới hạn ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
spfa-limit Sức bền của xe ⭐⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
spfa-longest Con đường thương nhân ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford
spfa-slf Đồ thị lưới hiểm trở ⭐⭐ Đồ thị Floyd-Warshall & Bellman-Ford

4.5. Khớp, Cầu và Thành phần liên thông mạnh (SCC)

Thuật toán Tarjan tìm khớp, cầu, 2-edge connected components và thành phần liên thông mạnh.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
artic-point Nút Giao Quan Trọng ⭐⭐ Đồ thị Khớp, Cầu và SCC
bridge-2edge Khối Liên Kết Bền Vững ⭐⭐ Đồ thị Khớp, Cầu và SCC
bridge-connect Xây Dựng Đường Mới ⭐⭐ Đồ thị Khớp, Cầu và SCC
bridge-find Đường Quan Trọng ⭐⭐ Đồ thị Khớp, Cầu và SCC
scc-condense Đồ Thị Thu Nhỏ ⭐⭐ Đồ thị Khớp, Cầu và SCC
scc-max-comp Cụm Liên Lạc Lớn Nhất ⭐⭐ Đồ thị Khớp, Cầu và SCC
scc-path Lộ Trình Thông Tin ⭐⭐ Đồ thị Khớp, Cầu và SCC
scc-tarjan Cụm Liên Lạc Độc Lập ⭐⭐ Đồ thị Khớp, Cầu và SCC

4.6. Chu trình và Đường đi Euler

Tìm đường đi và chu trình đi qua mỗi cạnh đúng một lần bằng thuật toán Hierholzer.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
euler-basic Mạng lưới phát tờ rơi Đồ thị Chu trình Euler
euler-de-bruijn Chuỗi mật mã De Bruijn ⭐⭐ Đồ thị Chu trình Euler
euler-directed Tuyến bay giao hàng ⭐⭐ Đồ thị Chu trình Euler
euler-domino Sắp xếp quân bài Domino ⭐⭐ Đồ thị Chu trình Euler
euler-path Đường đi thám hiểm Đồ thị Chu trình Euler
euler-postman Người đưa thư Trung Hoa ⭐⭐⭐ Đồ thị Chu trình Euler
euler-reconstruct Hành trình khép kín ⭐⭐ Đồ thị Chu trình Euler
euler-word-chain Chuỗi ghép từ ⭐⭐ Đồ thị Chu trình Euler

4.7. Cặp ghép cực đại trên đồ thị hai phía

Thuật toán tìm cặp ghép lớn nhất trên đồ thị hai phía (Hopcroft-Karp / DFS Augmenting Path).

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
match-basic Bộ ghép cơ bản ⭐⭐ Đồ thị Cặp ghép cực đại
match-cover Tập phủ cạnh nhỏ nhất ⭐⭐ Đồ thị Cặp ghép cực đại
match-domino Xếp domino lên bảng cờ ⭐⭐ Đồ thị Cặp ghép cực đại
match-hopcroft Bộ ghép kích thước lớn ⭐⭐ Đồ thị Cặp ghép cực đại
match-hungarian Phân công chi phí thấp nhất ⭐⭐ Đồ thị Cặp ghép cực đại
match-job Phân công công việc ⭐⭐ Đồ thị Cặp ghép cực đại
match-max-indep Tập đỉnh độc lập lớn nhất ⭐⭐ Đồ thị Cặp ghép cực đại
match-permut Ghép cặp hoán vị ⭐⭐ Đồ thị Cặp ghép cực đại

4.8. Luồng cực đại trên mạng (Network Flow)

Thuật toán Edmonds-Karp và Dinic giải quyết bài toán luồng cực đại và lát cắt hẹp nhất.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
flow-bipartite Ghép Cặp Hai Phía ⭐⭐ Đồ thị Luồng cực đại Network Flow
flow-dinic Luồng Cực Đại Dinic ⭐⭐ Đồ thị Luồng cực đại Network Flow
flow-edge-disc Cạnh Quan Trọng ⭐⭐ Đồ thị Luồng cực đại Network Flow
flow-max-closure Tập Đóng Trọng Số Lớn Nhất ⭐⭐ Đồ thị Luồng cực đại Network Flow
flow-max-flow Luồng Cực Đại Cơ Bản ⭐⭐ Đồ thị Luồng cực đại Network Flow
flow-min-cut Lát Cắt Cực Tiểu ⭐⭐ Đồ thị Luồng cực đại Network Flow
flow-multi-src Luồng Đa Nguồn Đích ⭐⭐ Đồ thị Luồng cực đại Network Flow
flow-node-cap Dung Lượng Trên Đỉnh ⭐⭐ Đồ thị Luồng cực đại Network Flow

4.9. Bài toán thỏa mãn 2 biến (2-SAT)

Xây dựng đồ thị suy diễn và giải bài toán 2-SAT bằng thành phần liên thông mạnh.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
twosat-2cnf Chuyển 2-CNF về đồ thị khả năng ⭐⭐ Đồ thị 2-SAT
twosat-3col Tô màu đồ thị ba màu dùng 2-SAT ⭐⭐ Đồ thị 2-SAT
twosat-assign Tìm phép gán thỏa mãn 2-SAT ⭐⭐ Đồ thị 2-SAT
twosat-atmost1 Tối đa một biến đúng trong ba biến ⭐⭐ Đồ thị 2-SAT
twosat-basic Kiểm tra biểu thức 2-SAT ⭐⭐ Đồ thị 2-SAT
twosat-color Tô màu đồ thị hai màu có ràng buộc ⭐⭐ Đồ thị 2-SAT
twosat-count Đếm số phép gán thỏa mãn 2-SAT ⭐⭐ Đồ thị 2-SAT
twosat-impl Hệ ràng buộc kéo theo ⭐⭐ Đồ thị 2-SAT
twosat-lexical Phép gán thỏa mãn có thứ tự từ điển nhỏ nhất ⭐⭐ Đồ thị 2-SAT
twosat-max-true Phép gán thỏa mãn có nhiều true nhất ⭐⭐ Đồ thị 2-SAT
twosat-schedule Xếp lịch thi với ràng buộc ⭐⭐ Đồ thị 2-SAT
twosat-xor Hệ ràng buộc XOR ⭐⭐ Đồ thị 2-SAT

PHẦN V: THUẬT TOÁN VÀ CẤU TRÚC DỮ LIỆU TRÊN CÂY (TREE ALGORITHMS)

5.1. Tổ tiên chung gần nhất (LCA) và Nhảy nhị phân

Tính 2^k-ancestor, LCA của hai đỉnh và truy vấn trọng số đường đi trên cây.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
lca-basic Tổ tiên chung Cấu trúc dữ liệu LCA & Binary Lifting
lca-distance Khoảng cách trạm ⭐⭐ Cấu trúc dữ liệu LCA & Binary Lifting
lca-k-ancestor Thăng chức cấp K Cấu trúc dữ liệu LCA & Binary Lifting
lca-max-edge Độ hiểm trở lớn nhất ⭐⭐ Cấu trúc dữ liệu LCA & Binary Lifting
lca-min-edge Cầu tải trọng yếu nhất ⭐⭐ Cấu trúc dữ liệu LCA & Binary Lifting
lca-node-on-path Đường tuần tra ⭐⭐⭐ Cấu trúc dữ liệu LCA & Binary Lifting
lca-planets Hành trình du hành ⭐⭐ Cấu trúc dữ liệu LCA & Binary Lifting
lca-tree-update Giao lộ giao thông ⭐⭐ Cấu trúc dữ liệu LCA & Binary Lifting

5.2. Euler Tour Tree (ETT)

Trải phẳng cây thành mảng để chuyển truy vấn cây con thành truy vấn đoạn.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
ett-ancestor Quan hệ huyết thống ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Euler Tour Tree
ett-dist Khoảng cách hai làng ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Euler Tour Tree
ett-lca Tổ tiên chung ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Euler Tour Tree
ett-root-sum Đường về nguồn cội ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Euler Tour Tree
ett-size Kích thước vương quốc ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Euler Tour Tree
ett-subtree-min Điểm yếu nhất ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Euler Tour Tree
ett-subtree-sum Kho lương thực ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Euler Tour Tree
ett-subtree-up Phát lương ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Euler Tour Tree

5.3. RMQ và Truy vấn đường đi trên cây

Kỹ thuật Lubenica kết hợp Binary Lifting truy vấn min/max trọng số trên đường đi.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
rmqt-and-path AND đường đi ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Lubenica & RMQ trên cây
rmqt-kth-edge Cạnh thứ K ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Lubenica & RMQ trên cây
rmqt-max-path Cạnh lớn nhất ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Lubenica & RMQ trên cây
rmqt-min-basic Cạnh nhỏ cơ bản ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Lubenica & RMQ trên cây
rmqt-min-path Cạnh nhỏ nhất ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Lubenica & RMQ trên cây
rmqt-minmax Lubenica gốc ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Lubenica & RMQ trên cây
rmqt-or-path OR đường đi ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Lubenica & RMQ trên cây
rmqt-up-edge Sửa cạnh ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Lubenica & RMQ trên cây
rmqt-xor-path XOR đường đi ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Lubenica & RMQ trên cây

5.4. Phân rã nhánh nặng - nhẹ (Heavy-Light Decomposition)

Phân rã cây thành các chuỗi nặng để xử lý truy vấn đường đi tổng quát với O(log^2 N).

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
hld-all-path Đa truy vấn ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Heavy-Light Decomposition
hld-edge-up Cập nhật cạnh ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Heavy-Light Decomposition
hld-heavy-query Truy vấn nặng ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Heavy-Light Decomposition
hld-lca Tổ tiên bằng HLD ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Heavy-Light Decomposition
hld-path-add Cộng đường đi ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Heavy-Light Decomposition
hld-path-easy Đường đi dễ ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Heavy-Light Decomposition
hld-path-max Đường đi lớn nhất ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Heavy-Light Decomposition
hld-path-sum Đường đi tổng số ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Heavy-Light Decomposition
hld-subtree Nhánh cây ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Heavy-Light Decomposition

5.5. Phân rã trọng tâm (Centroid Decomposition)

Chia để trị trên cây thông qua trọng tâm để giải các bài toán đường đi độ dài K.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
cd-count-k Đường đi tổng K ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Centroid Decomposition
cd-count-pairs Đếm cặp gần nhau ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Centroid Decomposition
cd-decompose Phân tách cây ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Centroid Decomposition
cd-diameter-all Mọi đường kính ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Centroid Decomposition
cd-distance-query Khoảng cách đỉnh xa ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Centroid Decomposition
cd-find-centroid Tìm trọng tâm ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Centroid Decomposition
cd-max-path Đường đi dài nhất ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Centroid Decomposition
cd-nearest Tìm đỉnh gần nhất ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Centroid Decomposition
cd-path-count-k Đếm đường K ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Centroid Decomposition
cd-sum-dist Tổng khoảng cách ⭐⭐⭐⭐⭐ Cấu trúc dữ liệu Centroid Decomposition

PHẦN VI: QUY HOẠCH ĐỘNG (DYNAMIC PROGRAMMING)

6.1. Quy hoạch động cơ bản

Các bài toán quy hoạch động kinh điển: dãy con tăng dài nhất (LIS), cái túi (Knapsack), biến đổi xâu.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
dp-01 Số Fibonacci Quy hoạch động Quy hoạch động
dp-02 Dãy Tribonacci Quy hoạch động Quy hoạch động
dp-03 Leo cầu thang Quy hoạch động Quy hoạch động
dp-04 Tên trộm Quy hoạch động Quy hoạch động
dp-05 Gieo xúc xắc Quy hoạch động Quy hoạch động
dp-06 Đếm cách đổi xu Quy hoạch động Quy hoạch động
dp-07 Đổi xu tối thiểu Quy hoạch động Quy hoạch động
dp-08 Tổng tập con không kề Quy hoạch động Quy hoạch động
dp-09 Cái túi 0/1 ⭐⭐ Quy hoạch động Quy hoạch động
dp-10 Cái túi không giới hạn ⭐⭐ Quy hoạch động Quy hoạch động
dp-11 Dãy con tăng dài nhất ⭐⭐ Quy hoạch động Quy hoạch động
dp-12 Xâu con chung dài nhất ⭐⭐ Quy hoạch động Quy hoạch động
dp-13 Khoảng cách biên tập ⭐⭐ Quy hoạch động Quy hoạch động
dp-14 Xâu con đối xứng dài nhất ⭐⭐ Quy hoạch động Quy hoạch động
dp-15 Cưa que gỗ ⭐⭐ Quy hoạch động Quy hoạch động
dp-16 Tách từ ⭐⭐ Quy hoạch động Quy hoạch động
dp-17 Tam giác số ⭐⭐ Quy hoạch động Quy hoạch động
dp-18 Tập con tổng S ⭐⭐ Quy hoạch động Quy hoạch động
dp-19 Phân công công việc ⭐⭐ Quy hoạch động Quy hoạch động
dp-20 Đường đi Hamilton ⭐⭐ Quy hoạch động Quy hoạch động
dp-21 Đường đi trong lưới ⭐⭐ Quy hoạch động Quy hoạch động
dp-22 Chia tập con bằng nhau ⭐⭐ Quy hoạch động Quy hoạch động
dp-23 Hình vuông lớn nhất ⭐⭐ Quy hoạch động Quy hoạch động
dp-24 Đoạn con tổng lớn nhất ⭐⭐ Quy hoạch động Quy hoạch động
dp-25 Xâu con đối xứng liên tiếp ⭐⭐ Quy hoạch động Quy hoạch động
dp-26 Đếm số đặc biệt ⭐⭐ Quy hoạch động Quy hoạch động
dp-27 Đường kính cây ⭐⭐ Quy hoạch động Quy hoạch động
dp-28 Đường đi lớn nhất trên cây ⭐⭐ Quy hoạch động Quy hoạch động
dp-29 Đường đi dài nhất trên DAG ⭐⭐ Quy hoạch động Quy hoạch động
dp-30 Cắt xâu đối xứng ⭐⭐ Quy hoạch động Quy hoạch động

6.2. Quy hoạch động 1D/1D

Tối ưu hóa các hệ thức quy hoạch động 1 chiều.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
d1d-attach Ghep Cap Thiet Bi ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động 1D/1D
d1d-basic-split Chia Mang ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động 1D/1D
d1d-cost-k D&C siêu khó ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động 1D/1D
d1d-factory Xay Nha May ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động 1D/1D
d1d-hat Phat Non ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động 1D/1D
d1d-letter Gui Thu Hang Loat ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động 1D/1D
d1d-linear-fill Dien So Vao Bang ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động 1D/1D
d1d-painting To Mau Hang Rao ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động 1D/1D
d1d-park Tram Dung Chan ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động 1D/1D
d1d-post-office Dat Buu Dien ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động 1D/1D
d1d-warehouse Xay Kho Hang ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động 1D/1D

6.3. Quy hoạch động trên cây (Tree DP)

Truy vấn tập độc lập, tập phủ đỉnh, đường kính cây và kỹ thuật đổi gốc (Rerooting).

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
dpt-center Tâm của cây ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động trên cây
dpt-diameter Đường kính cây ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động trên cây
dpt-k-colors Tô màu cây ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động trên cây
dpt-max-path-sum Đường đi tổng lớn ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động trên cây
dpt-reroot Đổi gốc ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động trên cây
dpt-size Kích thước gia tộc ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động trên cây
dpt-tree-cover Phủ đỉnh ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động trên cây
dpt-tree-indset Tập độc lập ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động trên cây
dpt-tree-knapsack Ba lô trên cây ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động trên cây
dpt-tree-matching Ghép cặp trên cây ⭐⭐⭐⭐⭐ Quy hoạch động Quy hoạch động trên cây

6.4. Quy hoạch động trên DAG

Tính toán đường đi dài nhất, đếm số đường đi và tối ưu hóa thứ tự tô-pô trên DAG.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
dpg-01 Đếm Đường Đi Trên Bản Đồ Một Chiều ⭐⭐⭐ Quy hoạch động Quy hoạch động trên DAG
dpg-02 Tuyến Giao Hàng Rẻ Nhất ⭐⭐⭐ Quy hoạch động Quy hoạch động trên DAG
dpg-03 Chuyến Phượt Qua Nhiều Điểm Dừng Nhất ⭐⭐⭐ Quy hoạch động Quy hoạch động trên DAG
dpg-04 Thời Gian Sớm Nhất Hoàn Thành Công Đoạn ⭐⭐⭐ Quy hoạch động Quy hoạch động trên DAG
dpg-05 Xếp Lịch Học Các Môn Có Tiên Quyết ⭐⭐⭐ Quy hoạch động Quy hoạch động trên DAG
dpg-06 Hoạt Động Lợi Nhuận Lớn Nhất ⭐⭐⭐ Quy hoạch động Quy hoạch động trên DAG
dpg-07 Đi Đúng K Bước Qua Bản Đồ ⭐⭐⭐ Quy hoạch động Quy hoạch động trên DAG
dpg-08 Số Tuyến Đường Giữa Hai Thành Phố ⭐⭐⭐ Quy hoạch động Quy hoạch động trên DAG

6.5. Quy hoạch động trên đoạn (Interval DP)

Nhân ma trận chuỗi, trộn sỏi, tam giác hóa đa giác và phân tách xâu đối xứng.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
int-bracket Ngoặc đúng ⭐⭐⭐⭐⭐ Quy hoạch động Interval DP
int-burst-balloons Bong bóng ⭐⭐⭐⭐⭐ Quy hoạch động Interval DP
int-burst-max Bong bóng max ⭐⭐⭐⭐⭐ Quy hoạch động Interval DP
int-matrix-chain Nhân ma trận ⭐⭐⭐⭐⭐ Quy hoạch động Interval DP
int-merge-stones Trộn đá ⭐⭐⭐⭐⭐ Quy hoạch động Interval DP
int-merge-v2 Trộn đá v2 ⭐⭐⭐⭐⭐ Quy hoạch động Interval DP
int-palindrome-cut Cắt xâu đối xứng ⭐⭐⭐⭐⭐ Quy hoạch động Interval DP
int-palindrome-lps Xâu con đối xứng dài nhất ⭐⭐⭐⭐⭐ Quy hoạch động Interval DP
int-pick-edge Chọn cạnh ⭐⭐⭐⭐⭐ Quy hoạch động Interval DP
int-polygon Đa giác ⭐⭐⭐⭐⭐ Quy hoạch động Interval DP
int-tree-cut Chặt cây ⭐⭐⭐⭐⭐ Quy hoạch động Interval DP

6.6. Quy hoạch động chữ số (Digit DP)

Đếm số lượng số trong đoạn [L, R] thỏa mãn các ràng buộc về chữ số.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
dig-count-3 Đếm Số Chia Hết Cho 3 ⭐⭐⭐⭐⭐ Quy hoạch động Digit DP
dig-div-digit Đếm Số Chia Hết Cho Các Chữ Số ⭐⭐⭐⭐⭐ Quy hoạch động Digit DP
dig-k-digit Tìm Số Thứ K Có Chữ Số Tăng Dần ⭐⭐⭐⭐⭐ Quy hoạch động Digit DP
dig-no-adj-same Đếm Số Không Có Chữ Số Liền Kề Giống Nhau ⭐⭐⭐⭐⭐ Quy hoạch động Digit DP
dig-no-trailing Đếm Số Không Có Chữ Số 0 Ở Cuối ⭐⭐⭐⭐⭐ Quy hoạch động Digit DP
dig-not-13 Đếm Số Không Chứa Xâu "13" ⭐⭐⭐⭐⭐ Quy hoạch động Digit DP
dig-num-square Đếm Số Có Tổng Bình Phương Chữ Số Là Số Nguyên Tố ⭐⭐⭐⭐⭐ Quy hoạch động Digit DP
dig-palindrome Đếm Số Đối Xứng ⭐⭐⭐⭐⭐ Quy hoạch động Digit DP
dig-product Đếm Số Có Tích Chữ Số Không Vượt Quá K ⭐⭐⭐⭐⭐ Quy hoạch động Digit DP
dig-sum-digit Đếm Số Có Tổng Chữ Số Bằng K ⭐⭐⭐⭐⭐ Quy hoạch động Digit DP
dig-sum-even Tổng chữ số chẵn ⭐⭐⭐⭐⭐ Quy hoạch động Digit DP

6.7. Quy hoạch động Bitmask

Biểu diễn trạng thái tập con bằng số nguyên và tối ưu bài toán phân công công việc.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
bit-assign Phân công công việc ⭐⭐⭐ Quy hoạch động Bitmask DP

6.8. Quy hoạch động trên tập con (SOS DP)

Sum Over Subsets DP tính tổng và cực trị trên tất cả các tập con nhị phân với O(K * 2^K).

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
sos-and-zero AND bằng 0 ⭐⭐⭐⭐⭐ Phép toán bit SOS DP
sos-cnt-sub Đếm tập con đẹp ⭐⭐⭐⭐⭐ Phép toán bit SOS DP
sos-four-and Bốn số AND ⭐⭐⭐⭐⭐ Phép toán bit SOS DP
sos-gcd-set GCD tập con ⭐⭐⭐⭐⭐ Phép toán bit SOS DP
sos-max-sub Lớn nhất tập con ⭐⭐⭐⭐⭐ Phép toán bit SOS DP
sos-max-xor-sub XOR tập con lớn ⭐⭐⭐⭐⭐ Phép toán bit SOS DP
sos-or-pair Cặp OR ⭐⭐⭐⭐⭐ Phép toán bit SOS DP
sos-seven-and Bảy số AND ⭐⭐⭐⭐⭐ Phép toán bit SOS DP
sos-sum-sub Tổng tập con ⭐⭐⭐⭐⭐ Phép toán bit SOS DP
sos-three-or Ba số OR ⭐⭐⭐⭐⭐ Phép toán bit SOS DP
sos-xor-pair Cặp XOR ⭐⭐⭐⭐⭐ Phép toán bit SOS DP

6.9. Tối ưu hóa Quy hoạch động (CHT, Knuth, D&C, Alien)

Các kỹ thuật tối ưu hóa nâng cao: Convex Hull Trick, Knuth Optimization, Chia để trị (D&C) và Alien Trick.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
ch-arrange Sắp xếp đồ vật ⭐⭐ Hình học cơ bản Tối ưu hóa quy hoạch động
ch-cemetery Nghĩa trang ⭐⭐ Hình học cơ bản Tối ưu hóa quy hoạch động
ch-circles Hình tròn lồng nhau ⭐⭐ Hình học cơ bản Tối ưu hóa quy hoạch động
ch-dp-aliens DP Aliens ⭐⭐ Hình học cơ bản Tối ưu hóa quy hoạch động
ch-fence-paint Sơn hàng rào ⭐⭐ Hình học cơ bản Tối ưu hóa quy hoạch động
ch-land-acq Mua đất ⭐⭐ Hình học cơ bản Tối ưu hóa quy hoạch động
ch-li-chao Cây Li Chao ⭐⭐ Hình học cơ bản Tối ưu hóa quy hoạch động
ch-line-intro Giới thiệu CHT ⭐⭐ Hình học cơ bản Tối ưu hóa quy hoạch động
ch-max-rect Hình chữ nhật lớn nhất ⭐⭐ Hình học cơ bản Tối ưu hóa quy hoạch động
ch-sawmill Xưởng cưa ⭐⭐ Hình học cơ bản Tối ưu hóa quy hoạch động
opt-alien Chia việc ⭐⭐ Quy hoạch động Tối ưu hóa quy hoạch động
opt-alien-pro Alien nâng cao ⭐⭐⭐⭐⭐ Quy hoạch động Tối ưu hóa quy hoạch động
opt-bookshelf Kệ sách ⭐⭐ Quy hoạch động Tối ưu hóa quy hoạch động
opt-cht-basic Sản xuất dây chuyền ⭐⭐ Quy hoạch động Tối ưu hóa quy hoạch động
opt-cht-fence Hàng rào ⭐⭐ Quy hoạch động Tối ưu hóa quy hoạch động
opt-cht-land Mua đất ⭐⭐ Quy hoạch động Tối ưu hóa quy hoạch động
opt-dc-basic Chia đoạn bình phương ⭐⭐ Quy hoạch động Tối ưu hóa quy hoạch động
opt-dc-factory Xây nhà máy ⭐⭐ Quy hoạch động Tối ưu hóa quy hoạch động
opt-dc-xor Mã hóa XOR ⭐⭐ Quy hoạch động Tối ưu hóa quy hoạch động
opt-knuth-basic Trộn đoạn ⭐⭐ Quy hoạch động Tối ưu hóa quy hoạch động
opt-knuth-merge Trộn đá ⭐⭐ Quy hoạch động Tối ưu hóa quy hoạch động

PHẦN VII: THUẬT TOÁN XỬ LÝ XÂU KÝ TỰ (STRING ALGORITHMS)

7.1. Xử lý xâu cơ bản và Thao tác ký tự

Xử lý xâu, đếm tần suất, kiểm tra đối xứng và nén chuỗi cơ bản.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
str-fc Ký tự đầu tiên xuất hiện duy nhất ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
str-firstc Xâu con phân biệt bắt đầu bằng ký tự ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
str-match Đếm xuất hiện mẫu (Suffix Tree) ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
str-pal0 Palindrome chứa ký tự đầu tiên ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
str-palcnt Tổng palindrome con (kể overlap) ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
str-pald Đếm palindrome phân biệt (Palindrome Tree) ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
str-subcnt Đếm xâu con phân biệt (Suffix Tree) ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
str-xor LCP xoay vòng (Suffix Tree) ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
stra-cntpal Đếm palindrome con (Manacher) ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
stra-dist Đếm xâu con phân biệt (Suffix Array) ⭐⭐⭐ Xử lý xâu ký tự Xâu cơ bản
stra-lcp LCP và truy vấn trên Suffix Array ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
stra-lcs Xâu con chung dài nhất (Suffix Array) ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
stra-mana Palindrome dài nhất (Manacher) ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
stra-prefcnt Đếm tiền tố bằng Trie ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
stra-sa Xây dựng Suffix Array ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
stra-trie Từ điển bằng Trie ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
strb-anagram Hoán vị xâu ⭐⭐⭐ Xử lý xâu ký tự Xâu cơ bản
strb-freq Thống kê chữ cái Xử lý xâu ký tự Xâu cơ bản
strb-name Chuẩn hóa họ tên ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
strb-palin Kiểm tra xâu đối xứng Xử lý xâu ký tự Xâu cơ bản
strb-rle Mã hóa RLE ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
strb-sortword Sắp xếp từ trong xâu ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
strb-unique Xóa ký tự trùng ⭐⭐ Xử lý xâu ký tự Xâu cơ bản
strb-wordcnt Đếm số từ Xử lý xâu ký tự Xâu cơ bản

7.2. Băm chuỗi và Z-Algorithm

Thuật toán băm Rolling Hash và hàm tiền tố Z-Algorithm tìm kiếm xâu con trong thời gian tuyến tính.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
hsp-cmp So sánh hai xâu con (Double Hash) ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
hsp-dis Đếm xâu con phân biệt (Hash) ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
hsp-fc Xâu con phân biệt bắt đầu bằng ký tự c ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
hsp-half Hai nửa xâu giống nhau Xử lý xâu ký tự Hash xâu & Z-Algorithm
hsp-mx Xâu con xuất hiện nhiều nhất (Hash) ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
hsp-nn Xâu con phân biệt khác chính nó ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
hsp-pal Đếm palindrome con bằng Hash ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
hsp-prefix So sánh hash xâu con trực tuyến ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
ksp-bd Đếm số border của xâu ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
ksp-first Vị trí xuất hiện đầu tiên (KMP) Xử lý xâu ký tự Hash xâu & Z-Algorithm
ksp-last Vị trí xuất hiện cuối cùng ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
ksp-nool Đếm không overlap (KMP) ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
ksp-pair Hai mẫu xuất hiện đồng thời ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
ksp-per2 Chu kỳ ngắn nhất (edge case) Xử lý xâu ký tự Hash xâu & Z-Algorithm
ksp-rot Xoay vòng chuỗi bằng KMP ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
ksp-short Ghép hai xâu tối thiểu (KMP) ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
strh-border Border xâu (Hash) ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
strh-dist Đếm xâu con phân biệt Xử lý xâu ký tự Hash xâu & Z-Algorithm
strh-find Tìm xâu con bằng Hash ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
strh-hash Tính hash cơ bản Xử lý xâu ký tự Hash xâu & Z-Algorithm
strh-lcs Xâu con chung dài nhất (Hash) ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
strh-palind Palindrome với Hash ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
strh-period Chu kỳ xâu ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
strh-repeat Xâu con lặp dài nhất ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
strk-border Border xâu bằng KMP ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
strk-kmp Tìm xâu mẫu bằng KMP ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
strk-occ Đếm lần xuất hiện bằng KMP ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
strk-period Chu kỳ nhỏ nhất bằng KMP Xử lý xâu ký tự Hash xâu & Z-Algorithm
strk-prefix Hàm tiền tố (Prefix Function) Xử lý xâu ký tự Hash xâu & Z-Algorithm
strk-union Ghép xâu tối ưu bằng KMP ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm
strk-zfunc Hàm Z (Z-Algorithm) Xử lý xâu ký tự Hash xâu & Z-Algorithm
strk-zmatch Tìm xâu mẫu bằng Z-Algorithm ⭐⭐ Xử lý xâu ký tự Hash xâu & Z-Algorithm

7.3. Thuật toán Manacher

Tìm toàn bộ các xâu con đối xứng (Palindrome) dài nhất trong thời gian O(N).

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
man-cmn Palindrome chung giữa hai vị trí ⭐⭐ Xử lý xâu ký tự Thuật toán Manacher
man-cnt Đếm cặp palindrome con ⭐⭐ Xử lý xâu ký tự Thuật toán Manacher
man-com Palindrome chung giữa hai xâu ⭐⭐ Xử lý xâu ký tự Thuật toán Manacher
man-dst Đếm palindrome phân biệt ⭐⭐ Xử lý xâu ký tự Thuật toán Manacher
man-even Palindrome độ dài chẵn ⭐⭐ Xử lý xâu ký tự Thuật toán Manacher
man-odd3 Liệt kê palindrome độ dài 3 ⭐⭐ Xử lý xâu ký tự Thuật toán Manacher
man-pk Đếm palindrome độ dài K (Manacher) ⭐⭐ Xử lý xâu ký tự Thuật toán Manacher
man-pos Palindrome chứa vị trí cho trước ⭐⭐ Xử lý xâu ký tự Thuật toán Manacher

7.4. Mảng Hậu tố (Suffix Array) và Suffix Automaton

Xây dựng mảng hậu tố Suffix Array, mảng LCP và máy tự động hậu tố SAM.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
sa-cnt-substr Đếm xâu con Xử lý xâu ký tự Suffix Array
sa-first-pos Vị trí xuất hiện đầu tiên ⭐⭐ Xử lý xâu ký tự Suffix Array
sa-k-occur Xâu con K lần ⭐⭐⭐⭐⭐ Xử lý xâu ký tự Suffix Array
sa-kth-substr Xâu con thứ K ⭐⭐ Xử lý xâu ký tự Suffix Array
sa-lcs Xâu con chung dài nhất ⭐⭐ Xử lý xâu ký tự Suffix Array
sa-min-cyclic Xoay vòng nhỏ nhất Xử lý xâu ký tự Suffix Array
sa-occur Số lần xuất hiện ⭐⭐ Xử lý xâu ký tự Suffix Array
sa-short-unique Xâu con ngắn nhất xuất hiện 1 lần Xử lý xâu ký tự Suffix Array
sa-substr Xâu con Xử lý xâu ký tự Suffix Array
sa-substr-all Xâu con bội ⭐⭐⭐⭐⭐ Xử lý xâu ký tự Suffix Array
saf-blr Xâu con lặp dài nhất ⭐⭐ Xử lý xâu ký tự Suffix Array
saf-chc Xâu con phân biệt theo ký tự đầu ⭐⭐ Xử lý xâu ký tự Suffix Array
saf-dk Xâu con phân biệt độ dài K (SA) ⭐⭐ Xử lý xâu ký tự Suffix Array
saf-finlcs LCS bằng Suffix Array cải tiến ⭐⭐ Xử lý xâu ký tự Suffix Array
saf-lcpr LCP giữa hai vị trí trực tuyến ⭐⭐ Xử lý xâu ký tự Suffix Array
saf-pal2 Palindrome xuất hiện nhiều nhất ⭐⭐ Xử lý xâu ký tự Suffix Array
saf-per Chu kỳ ngắn nhất của xâu (SA) ⭐⭐ Xử lý xâu ký tự Suffix Array
saf-salc In Suffix Array và LCP ⭐⭐ Xử lý xâu ký tự Suffix Array

7.5. Thuật toán Aho-Corasick

Máy tự động tiền tố tìm kiếm đồng thời nhiều mẫu xâu trong thời gian tuyến tính.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
ac-bad-words Xóa ít nhất ⭐⭐ Xử lý xâu ký tự Aho-Corasick
ac-basic Tìm từ Xử lý xâu ký tự Aho-Corasick
ac-count Đếm từ Xử lý xâu ký tự Aho-Corasick
ac-dna DNA ⭐⭐ Xử lý xâu ký tự Aho-Corasick
ac-exist Kiểm tra Xử lý xâu ký tự Aho-Corasick
ac-find-word Tìm từ đơn ⭐⭐⭐⭐⭐ Xử lý xâu ký tự Aho-Corasick
ac-pattern Pattern ⭐⭐ Xử lý xâu ký tự Aho-Corasick
ac-word-max Từ dài nhất Xử lý xâu ký tự Aho-Corasick
ac-word-min Đoạn ngắn ⭐⭐ Xử lý xâu ký tự Aho-Corasick
ac-xor-string AC + XOR ⭐⭐⭐⭐⭐ Xử lý xâu ký tự Aho-Corasick

PHẦN VIII: LÝ THUYẾT SỐ VÀ ĐẠI SỐ (NUMBER THEORY & ALGEBRA)

8.1. Ước chung lớn nhất, Euclid và Nghịch đảo Modulo

Thuật toán Euclid mở rộng, tính lũy thừa nhanh và nghịch đảo modulo.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
dl-bsgs Baby-step Giant-step ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
dl-exist Kiểm tra DL tồn tại ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
dl-log-fact DL với tích ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
dl-multi DL nhiều truy vấn ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
dl-order Bậc của phần tử ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
dl-pohlig Pohlig-Hellman ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
dl-small-p DL với p nhỏ ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-catalan Số Catalan modulo ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-coprime Đếm cặp số nguyên tố cùng nhau ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-crt Định lý thặng dư Trung Hoa ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-div Chia modulo ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-egcd Euclid mở rộng ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-frac Số học phân số ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-gcd Ước chung lớn nhất Lý thuyết số Euclid & Nghịch đảo modulo
euclid-inv Nghịch đảo modulo ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-invfact Giai thừa và nghịch đảo ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-lcm Bội chung nhỏ nhất Lý thuyết số Euclid & Nghịch đảo modulo
euclid-lucas Định lý Lucas ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-nck Tổ hợp modulo ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-pow Lũy thừa modulo Lý thuyết số Euclid & Nghịch đảo modulo
euclid-sumdiv Tổng ước số ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
euclid-sumpow Tổng lũy thừa ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
math-binom Tổ hợp chập Lý thuyết số Euclid & Nghịch đảo modulo
math-divcnt Đếm số lượng ước số Lý thuyết số Euclid & Nghịch đảo modulo
math-factor Phân tích thừa số nguyên tố Lý thuyết số Euclid & Nghịch đảo modulo
math-modinv Nghịch đảo modulo Lý thuyết số Euclid & Nghịch đảo modulo
math-prime Kiểm tra số nguyên tố ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
math-sieve Sàng nguyên tố Lý thuyết số Euclid & Nghịch đảo modulo
pr-all Liệt kê căn nguyên thủy ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
pr-basic Căn nguyên thủy ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
pr-count Đếm căn nguyên thủy ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
pr-legendre Legendre symbol Lý thuyết số Euclid & Nghịch đảo modulo
pr-qr-check QR check nhiều truy vấn ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo
pr-sqrt Căn bậc hai modulo ⭐⭐ Lý thuyết số Euclid & Nghịch đảo modulo

8.2. Hàm Phi Euler và Hàm Nhân tính

Tính hàm Phi Euler, tích chập Dirichlet và hàm Möbius biến đổi.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
mobius-basic Hàm Möbius Lý thuyết số Hàm Phi Euler
mobius-coprime-cnt Đếm cặp nguyên tố cùng nhau ⭐⭐ Lý thuyết số Hàm Phi Euler
mobius-div-sum Tổng GCD dùng Möbius ⭐⭐ Lý thuyết số Hàm Phi Euler
mobius-mult-func Hàm nhân tính ⭐⭐ Lý thuyết số Hàm Phi Euler
mobius-range Sàng Möbius ⭐⭐ Lý thuyết số Hàm Phi Euler
mobius-sigma0 Tổng số ước Lý thuyết số Hàm Phi Euler
mobius-squarefree Đếm số square-free ⭐⭐ Lý thuyết số Hàm Phi Euler
mobius-triple Đếm bộ gcd=1 bằng Möbius ⭐⭐ Lý thuyết số Hàm Phi Euler
phi-coprime-r Đếm nguyên tố cùng nhau trong đoạn ⭐⭐ Lý thuyết số Hàm Phi Euler
phi-div-euler Chia modulo bằng định lý Euler ⭐⭐ Lý thuyết số Hàm Phi Euler
phi-euler Hàm Phi Euler ⭐⭐ Lý thuyết số Hàm Phi Euler
phi-exponent Lũy thừa modulo bằng định lý Euler ⭐⭐ Lý thuyết số Hàm Phi Euler
phi-frac Đếm phân số tối giản ⭐⭐ Lý thuyết số Hàm Phi Euler
phi-gcd-sum Tổng GCD với Phi Euler ⭐⭐ Lý thuyết số Hàm Phi Euler
phi-multi Tổng Phi trên ước Lý thuyết số Hàm Phi Euler
phi-order Cấp của số modulo ⭐⭐ Lý thuyết số Hàm Phi Euler
phi-range Sàng Phi Euler Lý thuyết số Hàm Phi Euler
phi-sum Tổng Phi Euler trên đoạn ⭐⭐ Lý thuyết số Hàm Phi Euler
shnc-divisor-sum Tổng ước số Lý thuyết số Hàm Phi Euler
shnc-euler-puzzle Ngược Phi Euler ⭐⭐ Lý thuyết số Hàm Phi Euler
shnc-euler-single Phi hàm Euler Lý thuyết số Hàm Phi Euler
shnc-euler-thm Định lý Euler ⭐⭐ Lý thuyết số Hàm Phi Euler
shnc-gcd-sum2 Tổng GCD nâng cao ⭐⭐ Lý thuyết số Hàm Phi Euler
shnc-linear-sieve Sàng tuyến tính ⭐⭐ Lý thuyết số Hàm Phi Euler
shnc-mod-equation Phương trình đồng dư bậc nhất ⭐⭐ Lý thuyết số Hàm Phi Euler
shnc-mod-puzzle Câu đố đồng dư ⭐⭐ Lý thuyết số Hàm Phi Euler
shnc-num-divisors Số lượng, tổng, tích ước ⭐⭐ Lý thuyết số Hàm Phi Euler
shnc-pollard Phân tích thừa số nguyên tố Lý thuyết số Hàm Phi Euler
shnc-prime-interval Sàng phân đoạn ⭐⭐ Lý thuyết số Hàm Phi Euler
shnc-prime-puzzle Số đặc biệt ⭐⭐ Lý thuyết số Hàm Phi Euler
snhh-divcnt Đếm ước nhiều truy vấn ⭐⭐ Lý thuyết số Hàm Phi Euler
snhh-divcnt-range Đếm số có K ước ⭐⭐ Lý thuyết số Hàm Phi Euler
snhh-divsum Tổng ước modulo ⭐⭐ Lý thuyết số Hàm Phi Euler
snhh-fact-multi Phân tích thừa số nhiều truy vấn ⭐⭐ Lý thuyết số Hàm Phi Euler
snhh-lcm-range LCM trên đoạn ⭐⭐ Lý thuyết số Hàm Phi Euler
snhh-spf SPF cơ bản ⭐⭐ Lý thuyết số Hàm Phi Euler
snhh-squarefree Đếm số square-free ⭐⭐ Lý thuyết số Hàm Phi Euler
snhh-sumdiv1n Tổng đếm ước 1..N ⭐⭐ Lý thuyết số Hàm Phi Euler

8.3. Định lý Thặng dư Trung Hoa (CRT)

Giải hệ phương trình đồng dư bậc nhất bằng định lý thặng dư Trung Hoa.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
crt Định Lý Thặng Dư Trung Hoa ⭐⭐ Lý thuyết số Định lý Thặng dư Trung Hoa
crt-basic CRT cơ bản ⭐⭐ Lý thuyết số Định lý Thặng dư Trung Hoa
crt-garner CRT thuật toán Garner ⭐⭐ Lý thuyết số Định lý Thặng dư Trung Hoa
crt-inv CRT với dư bằng 1 Lý thuyết số Định lý Thặng dư Trung Hoa
crt-large CRT nhiều phương trình ⭐⭐ Lý thuyết số Định lý Thặng dư Trung Hoa
crt-pair CRT hai phương trình Lý thuyết số Định lý Thặng dư Trung Hoa
crt-prime CRT với modulo nguyên tố ⭐⭐ Lý thuyết số Định lý Thặng dư Trung Hoa

8.4. Định lý Wilson và Định lý Lucas

Tính toán giai thừa và tổ hợp modulo số nguyên tố lớn.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
wl-comb-mod Tổng tổ hợp modulo Lý thuyết số Định lý Wilson & Lucas
wl-fact-mod Giai thừa modulo Lý thuyết số Định lý Wilson & Lucas
wl-fact-p Giai thừa modulo số nguyên tố Lý thuyết số Định lý Wilson & Lucas
wl-lucas-basic Định lý Lucas cơ bản ⭐⭐ Lý thuyết số Định lý Wilson & Lucas
wl-lucas-multi Lucas nhiều truy vấn ⭐⭐ Lý thuyết số Định lý Wilson & Lucas
wl-lucas-sumstr Tổng tổ hợp theo bội của p ⭐⭐ Lý thuyết số Định lý Wilson & Lucas
wl-permut Hoán vị modulo Lý thuyết số Định lý Wilson & Lucas
wl-wilson Kiểm chứng định lý Wilson Lý thuyết số Định lý Wilson & Lucas
wl-wilson-check Kiểm tra nguyên tố bằng Wilson Lý thuyết số Định lý Wilson & Lucas
wl-wilson-ext Wilson mở rộng ⭐⭐ Lý thuyết số Định lý Wilson & Lucas
wl-wilson-lucas Kết hợp Wilson và Lucas ⭐⭐ Lý thuyết số Định lý Wilson & Lucas

8.5. Sàng nâng cao, Logarithm rời rạc và Căn nguyên thủy

Thuật toán Baby-step Giant-step và tìm căn nguyên thủy.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
fsm-fact-basic Giai thừa modulo cơ bản Lý thuyết số Logarithm rời rạc
fsm-fact-range Tích đoạn modulo Lý thuyết số Logarithm rời rạc
fsm-fact-zero Giai thừa và số 0 modulo Lý thuyết số Logarithm rời rạc
fsm-sqrt-both Hai căn bậc hai modulo ⭐⭐ Lý thuyết số Logarithm rời rạc
fsm-sqrt-check Kiểm tra căn bậc hai modulo Lý thuyết số Logarithm rời rạc
fsm-sqrt-easy Căn bậc hai modulo (p ≡ 3 mod 4) ⭐⭐ Lý thuyết số Logarithm rời rạc
fsm-sqrt-ts Tonelli-Shanks ⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-boi-so Bội số trong đoạn ⭐⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-dprime-factor Đếm ước nguyên tố ⭐⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-fibo Fibonacci nhanh ⭐⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-gcd-sum Tổng GCD ⭐⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-linear-rec Dãy số truy hồi ⭐⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-lucas Tổ hợp Lucas ⭐⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-nt-sinhdoi Cặp nguyên tố sinh đôi ⭐⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-phi Hàm Euler ⭐⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-powpow Lũy thừa chồng ⭐⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-sangdoan Sàng phân đoạn ⭐⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-spf Thừa số nguyên tố nhỏ nhất ⭐⭐⭐ Lý thuyết số Logarithm rời rạc
ltht-tprime Số T-prime ⭐⭐⭐ Lý thuyết số Logarithm rời rạc

8.6. Nhân ma trận và Khử Gauss

Nhân ma trận nhanh tính số Fibonacci, giải hệ phương trình tuyến tính và tính định thức modulo.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
ge-2x2 Định thức 2x2 Toán học Nhân ma trận
ge-det Định thức ma trận ⭐⭐ Toán học Nhân ma trận
ge-inverse Ma trận nghịch đảo ⭐⭐ Toán học Nhân ma trận
ge-lights Lights Out ⭐⭐ Toán học Nhân ma trận
ge-rank Hạng ma trận ⭐⭐ Toán học Nhân ma trận
ge-system Giải hệ phương trình ⭐⭐ Toán học Nhân ma trận
ge-tridiag Ma trận 3 đường chéo ⭐⭐ Toán học Nhân ma trận
ge-xor XOR basis ⭐⭐ Toán học Nhân ma trận
mm-2x2-recur Truy hồi hai biến ⭐⭐ Toán học Nhân ma trận
mm-fibo Fibonacci ma trận ⭐⭐ Toán học Nhân ma trận
mm-fibonacci-n Fibonacci tổng quát ⭐⭐ Toán học Nhân ma trận
mm-fibosum Tổng Fibonacci ⭐⭐ Toán học Nhân ma trận
mm-graph-path Số đường đi đồ thị bằng ma trận ⭐⭐ Toán học Nhân ma trận
mm-hopping Hopping ma trận ⭐⭐ Toán học Nhân ma trận
mm-large-grid Lưới 2×N ⭐⭐ Toán học Nhân ma trận
mm-linear Truy hồi tuyến tính ⭐⭐ Toán học Nhân ma trận
mm-stairs Leo cầu thang ma trận ⭐⭐ Toán học Nhân ma trận
mm-tribo Tribonacci ma trận ⭐⭐ Toán học Nhân ma trận
mm-walks Walk trên đồ thị ⭐⭐ Toán học Nhân ma trận

8.7. Tổ hợp và Xác suất

Tính chỉnh hợp, tổ hợp, số Catalan, số Stirling và kỳ vọng toán học.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
gp-basic Đường đi trên lưới cơ bản ⭐⭐ Quy hoạch động Tổ hợp & Xác suất
gp-binom-sum Tổng nhị thức Vandermonde ⭐⭐ Quy hoạch động Tổ hợp & Xác suất
gp-dice Dice combinations Quy hoạch động Tổ hợp & Xác suất
gp-dyck Dyck path ⭐⭐ Quy hoạch động Tổ hợp & Xác suất
gp-ksteps Đường đi K bước trên đồ thị ⭐⭐ Quy hoạch động Tổ hợp & Xác suất
gp-maze Mê cung tổng lớn nhất ⭐⭐ Quy hoạch động Tổ hợp & Xác suất
gp-multiset Tổ hợp có lặp ⭐⭐ Quy hoạch động Tổ hợp & Xác suất
gp-obstacle Lưới có vật cản ⭐⭐ Quy hoạch động Tổ hợp & Xác suất
gp-paths-all Đường đi không chạm chéo ⭐⭐ Quy hoạch động Tổ hợp & Xác suất
gp-robot Robot trên lưới ⭐⭐ Quy hoạch động Tổ hợp & Xác suất
gt-coin-game Trò chơi đồng xu ⭐⭐ Lý thuyết số Tổ hợp & Xác suất
gt-coin-heap Trò chơi chia đống ⭐⭐ Lý thuyết số Tổ hợp & Xác suất
gt-dag-game Game trên DAG ⭐⭐ Lý thuyết số Tổ hợp & Xác suất
gt-division-game Trò chơi chia số ⭐⭐ Lý thuyết số Tổ hợp & Xác suất
gt-grundy-basic Grundy cơ bản ⭐⭐ Lý thuyết số Tổ hợp & Xác suất
gt-grundy-range Grundy khoảng cách lớn ⭐⭐ Lý thuyết số Tổ hợp & Xác suất
gt-nim-basic Nim cơ bản Lý thuyết số Tổ hợp & Xác suất
gt-nim-move Nim với giới hạn lấy ⭐⭐ Lý thuyết số Tổ hợp & Xác suất
gt-nim-multi Nim có gộp đống ⭐⭐ Lý thuyết số Tổ hợp & Xác suất
gt-stone-game Trò chơi xếp đá ⭐⭐ Lý thuyết số Tổ hợp & Xác suất
gt-subtraction Subtraction game Lý thuyết số Tổ hợp & Xác suất
gt-tree-game Game trên cây ⭐⭐ Lý thuyết số Tổ hợp & Xác suất
gt-wythoff Wythoff's Game ⭐⭐ Lý thuyết số Tổ hợp & Xác suất
thxs-ballot Định lý Ballot ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-basic Tổ hợp cơ bản Toán học Tổ hợp & Xác suất
thxs-burnside Burnside - Đếm vòng cổ ⭐⭐⭐ Toán học Tổ hợp & Xác suất
thxs-catalan Số Catalan ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-expect Kỳ vọng số lần tung xúc xắc ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-pascal Tam giác Pascal Toán học Tổ hợp & Xác suất
thxs-permrep Hoán vị có trùng ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-prob-bag Xác suất rút bi không hoàn lại ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-prob-basic Xác suất đồng xu ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-prob-cards Xác suất bài tây 52 lá ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-prob-dp Xác suất có k ngửa liên tiếp ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-prob-game Xác suất trò chơi tung đồng xu ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-prob-graph Xác suất trên đồ thị ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-stars Tổ hợp có lặp ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-stirling Số Stirling loại 2 ⭐⭐ Toán học Tổ hợp & Xác suất
thxs-sumcomb Tổng tổ hợp Toán học Tổ hợp & Xác suất

8.8. Nguyên lý Bao hàm - Loại trừ

Đếm số phần tử thỏa mãn ít nhất một tính chất thông qua công thức bao hàm loại trừ.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
ie-coloring Tô màu có giới hạn ⭐⭐ Lý thuyết số Nguyên lý Bao hàm - Loại trừ
ie-coprime-range Nguyên tố cùng nhau trong đoạn ⭐⭐ Lý thuyết số Nguyên lý Bao hàm - Loại trừ
ie-derange Derangement ⭐⭐ Lý thuyết số Nguyên lý Bao hàm - Loại trừ
ie-divisor-sum Đếm cặp GCD = d ⭐⭐ Lý thuyết số Nguyên lý Bao hàm - Loại trừ
ie-grid-path Đường đi lưới có vật cản ⭐⭐ Lý thuyết số Nguyên lý Bao hàm - Loại trừ
ie-multiple-range Bội số trong đoạn ⭐⭐ Lý thuyết số Nguyên lý Bao hàm - Loại trừ
ie-nonzero-sum Tập con tổng bằng S Lý thuyết số Nguyên lý Bao hàm - Loại trừ
ie-not-div Không chia hết ⭐⭐ Lý thuyết số Nguyên lý Bao hàm - Loại trừ
ie-permut Hoán vị có ít nhất một điểm cố định ⭐⭐ Lý thuyết số Nguyên lý Bao hàm - Loại trừ
ie-relprime-sum Tổng số nguyên tố cùng nhau ⭐⭐ Lý thuyết số Nguyên lý Bao hàm - Loại trừ
ie-subset-sum Đếm tập con tổng ≤ S ⭐⭐ Lý thuyết số Nguyên lý Bao hàm - Loại trừ
ie-surj Ánh xạ lên (Surjection) ⭐⭐ Lý thuyết số Nguyên lý Bao hàm - Loại trừ

8.9. Biến đổi Fourier và NTT

Biến đổi Number Theoretic Transform nhân đa thức trong thời gian O(N log N).

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
ntt-basic NTT nhân đa thức ⭐⭐ Toán học Biến đổi NTT
ntt-bigint Nhân số lớn NTT ⭐⭐ Toán học Biến đổi NTT
ntt-mul3 Nhân ba đa thức ⭐⭐ Toán học Biến đổi NTT
ntt-pair Đếm cặp tổng K ⭐⭐ Toán học Biến đổi NTT
ntt-self Bình phương đa thức ⭐⭐ Toán học Biến đổi NTT

8.10. Lý thuyết Matroid

Cấu trúc Matroid độc lập tuyến tính, Matroid đồ thị và thuật toán tham lam trên Matroid.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
mat-graphic-max Graphic Matroid - Cây khung lớn nhất ⭐⭐ Thuật toán tham lam Lý thuyết Matroid
mat-graphic-min Graphic Matroid - Cây khung nhỏ nhất Thuật toán tham lam Lý thuyết Matroid
mat-greedy-proof Kiểm tra tham lam tối ưu ⭐⭐ Thuật toán tham lam Lý thuyết Matroid
mat-linear-indep Linear Matroid - Hạt năng lượng ⭐⭐ Thuật toán tham lam Lý thuyết Matroid
mat-partition-color Partition Matroid - Kẹo màu sắc ⭐⭐ Thuật toán tham lam Lý thuyết Matroid
mat-partition-job Partition Matroid - Lập lịch công việc ⭐⭐ Thuật toán tham lam Lý thuyết Matroid
mat-uniform Uniform Matroid - Chọn đồ chơi Thuật toán tham lam Lý thuyết Matroid
mat-uniform-k Uniform Matroid - Chọn đúng K phần quà ⭐⭐ Thuật toán tham lam Lý thuyết Matroid

PHẦN IX: HÌNH HỌC TÍNH TOÁN (COMPUTATIONAL GEOMETRY)

9.1. Điểm, Đoạn thẳng và Tam giác

Kiểm tra hướng rẽ CCW, khoảng cách điểm đến đường thẳng và phân loại tam giác.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
geo-colinear Ba ngôi sao thẳng hàng ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
geo-dist2 Bình phương khoảng cách ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
geo-line-dist Khoảng cách hai đường thẳng ⭐⭐ Hình học cơ bản Hình học cơ bản
geo-orient Hướng rẽ của Robot ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
geo-p2seg Trạm phát sóng wifi ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
geo-pip Máy bay không người lái ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
geo-point-on-seg Điểm trên đoạn thẳng ⭐⭐ Hình học cơ bản Hình học cơ bản
geo-poly-area Khu bảo tồn thiên nhiên ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
geo-poly-clock Chiều kim đồng hồ ⭐⭐ Hình học cơ bản Hình học cơ bản
geo-poly-convex Kiểm tra đa giác lồi ⭐⭐ Hình học cơ bản Hình học cơ bản
geo-seg-int Mạng lưới đường ống ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
geo-tri-area Mảnh đất hình tam giác ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
geo-tri-type Phân loại tam giác ⭐⭐ Hình học cơ bản Hình học cơ bản
line-2lines Vị trí tương đối hai đường thẳng ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
line-2pts Đường thẳng qua hai điểm ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
line-bisect Phân giác của hai tia sáng ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
line-intersect Giao điểm hai đường thẳng ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
line-poly-area Mảnh vườn của bác Tám ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
line-pt-dist Trạm phát sóng và đường dây điện ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
line-reflect Bàn bi-a áo thuật ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản
line-seg-int Giao điểm của hai đoạn ống ⭐⭐⭐⭐⭐ Hình học cơ bản Hình học cơ bản

9.2. Hình học Đường tròn

Giao điểm đường tròn, tiếp tuyến và diện tích giao thoa hình tròn.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
circle-2intersect Giao điểm hai đường tròn ⭐⭐ Hình học cơ bản Hình học đường tròn
circle-area-inter Diện tích phần giao hai đường tròn ⭐⭐⭐ Hình học cơ bản Hình học đường tròn
circle-circum Bán kính đường tròn ngoại tiếp ⭐⭐ Hình học cơ bản Hình học đường tròn
circle-from3 Đường tròn qua ba điểm ⭐⭐ Hình học cơ bản Hình học đường tròn
circle-inside Kiểm tra điểm và đường tròn ⭐⭐ Hình học cơ bản Hình học đường tròn
circle-intersect Số giao điểm hai đường tròn ⭐⭐ Hình học cơ bản Hình học đường tròn
circle-line-inter Giao điểm đường thẳng và đường tròn ⭐⭐ Hình học cơ bản Hình học đường tròn
circle-tangent Tiếp tuyến từ điểm đến đường tròn ⭐⭐ Hình học cơ bản Hình học đường tròn

9.3. Góc và Phép quay

Tọa độ cực, sắp xếp góc và phép quay vector trong mặt phẳng tọa độ.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
polar-angular-dist Khoảng cách góc nhỏ nhất ⭐⭐ Hình học cơ bản Góc & Phép quay
polar-dominant Đếm điểm trội ⭐⭐ Hình học cơ bản Góc & Phép quay
polar-max-half Nửa mặt phẳng chứa nhiều điểm nhất ⭐⭐ Hình học cơ bản Góc & Phép quay
polar-min-angle Góc nhỏ nhất giữa hai vector ⭐⭐ Hình học cơ bản Góc & Phép quay
polar-same-line Đường thẳng qua gốc chứa nhiều điểm nhất ⭐⭐ Hình học cơ bản Góc & Phép quay
polar-sector Đèn pha chiếu sáng ⭐⭐ Hình học cơ bản Góc & Phép quay
polar-sort-basic Sắp xếp điểm theo góc cực ⭐⭐ Hình học cơ bản Góc & Phép quay
polar-visible Đếm điểm nhìn thấy từ gốc toạ độ ⭐⭐ Hình học cơ bản Góc & Phép quay
rot-tri-rotate Diện tích tam giác sau quay ⭐⭐⭐ Hình học cơ bản Góc & Phép quay
rotate-angle Góc giữa hai vector ⭐⭐ Hình học cơ bản Góc & Phép quay
rotate-around Quay điểm quanh điểm bất kỳ ⭐⭐ Hình học cơ bản Góc & Phép quay
rotate-ccw Xác định hướng quay ⭐⭐ Hình học cơ bản Góc & Phép quay
rotate-clock-angle Góc quay đồng hồ ⭐⭐ Hình học cơ bản Góc & Phép quay
rotate-point Quay điểm quanh gốc toạ độ ⭐⭐ Hình học cơ bản Góc & Phép quay
rotate-polar Chuyển đổi toạ độ ⭐⭐ Hình học cơ bản Góc & Phép quay
rotate-sort-angle Sắp xếp theo góc ⭐⭐ Hình học cơ bản Góc & Phép quay

9.4. Bao lồi (Convex Hull)

Thuật toán Graham Scan và Monotone Chain tìm bao lồi của tập điểm trong mặt phẳng.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
hull-area Diện tích bao lồi ⭐⭐ Hình học cơ bản Bao lồi
hull-build Dựng bao lồi ⭐⭐ Hình học cơ bản Bao lồi
hull-diameter Đường kính bao lồi ⭐⭐ Hình học cơ bản Bao lồi
hull-inside Kiểm tra điểm trong bao lồi ⭐⭐ Hình học cơ bản Bao lồi
hull-max-dist-pair Khoảng cách lớn nhất giữa hai điểm ⭐⭐ Hình học cơ bản Bao lồi
hull-max-tri Tam giác lớn nhất nội tiếp bao lồi ⭐⭐ Hình học cơ bản Bao lồi
hull-min-rect Hình chữ nhật bao nhỏ nhất ⭐⭐ Hình học cơ bản Bao lồi
hull-perimeter Chu vi bao lồi ⭐⭐ Hình học cơ bản Bao lồi
hull-points-in Đếm số điểm thuộc bao lồi ⭐⭐ Hình học cơ bản Bao lồi
hull-ship-pack Chu vi hình chữ nhật bao nhỏ nhất ⭐⭐ Hình học cơ bản Bao lồi

9.5. Định lý Pick

Tính diện tích đa giác nguyên và đếm số điểm nguyên bên trong và trên biên.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
pick-grid-tri Điểm nguyên trong tam giác vuông Hình học cơ bản Định lý Pick
pick-lattice-cnt Đếm cặp điểm nhìn thấy từ gốc ⭐⭐ Hình học cơ bản Định lý Pick
pick-poly-boundary Điểm nguyên trên biên đa giác Hình học cơ bản Định lý Pick
pick-polygon Diện tích đa giác và điểm nguyên ⭐⭐ Hình học cơ bản Định lý Pick
pick-rectangle-int Điểm nguyên bên trong hình chữ nhật Hình học cơ bản Định lý Pick
pick-segment Đếm điểm nguyên trên đoạn thẳng Hình học cơ bản Định lý Pick
pick-star-poly Đa giác hình sao và định lý Pick Hình học cơ bản Định lý Pick
pick-trapezoid Điểm nguyên trong hình thang ⭐⭐ Hình học cơ bản Định lý Pick
pick-triangle Đếm điểm nguyên trong tam giác Hình học cơ bản Định lý Pick
pick-triple Giao ba tam giác và điểm nguyên ⭐⭐ Hình học cơ bản Định lý Pick

9.6. Kỹ thuật Quét đường (Sweep-line)

Tìm giao điểm các đoạn thẳng và diện tích hợp các hình chữ nhật bằng Sweep-line.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
sweep-camera Đặt camera phủ kín đoạn ⭐⭐ Hình học cơ bản Sweep-line
sweep-max-gap Khoảng trống lớn nhất ⭐⭐ Hình học cơ bản Sweep-line
sweep-max-overlap Điểm phủ nhiều đoạn nhất ⭐⭐ Hình học cơ bản Sweep-line
sweep-pair-count Đếm cặp đoạn giao nhau ⭐⭐ Hình học cơ bản Sweep-line
sweep-points-rect Đếm điểm trong hình chữ nhật ⭐⭐ Hình học cơ bản Sweep-line
sweep-rect-area Diện tích hợp hình chữ nhật ⭐⭐ Hình học cơ bản Sweep-line
sweep-rect-overlap Điểm phủ nhiều hình chữ nhật nhất ⭐⭐ Hình học cơ bản Sweep-line
sweep-seg-intersect Giao điểm đoạn thẳng ⭐⭐ Hình học cơ bản Sweep-line

PHẦN X: BÀI TOÁN TỔNG HỢP VÀ NÂNG CAO (CAPSTONE PROBLEM SET)

10.1. Tuyển tập bài thi và Thử thách tổng hợp

Các bài toán chọn lọc tổng hợp kiến thức từ các kỳ thi lập trình.

Mã bài Tên bài tập Độ khó Phân loại chủ đề Bài học lý thuyết
fptat1-pair Perfect Pair Kỹ thuật hai con trỏ Kỹ năng thi đấu
fptat1-stair Magic Staircase Quy hoạch động Kỹ năng thi đấu
fptat1-treasure Treasure Subarray Tìm kiếm nhị phân Kỹ năng thi đấu
fptat1-tree Planting Trees Cấu trúc dữ liệu Kỹ năng thi đấu


💬 Bình luận