AI Empire Academy
CHUYÊN ĐỀ C++ THỰC CHIẾN

Bài tập Luồng cực đại & Lát cắt hẹp nhất trên mạng C++

Giải các bài toán quy hoạch vận tải, phân việc và chia nhóm tối ưu bằng mô hình luồng trên mạng với các thuật toán hiện đại có độ phức tạp thấp.

13

bài tập có chấm code

Bài tập theo chuyên đề, có đề bài, ví dụ và starter code riêng.

0

cơ bản

Củng cố nền tảng và làm quen với kỹ thuật cốt lõi.

0

trung bình

Kết hợp nhiều bước suy luận để vận dụng kiến thức.

13

nâng cao

Thử thách tối ưu, cấu trúc dữ liệu và thuật toán chuyên sâu.

Lộ trình thực hành đề xuất

Bước 1

Mạng thặng dư & Cạnh đảo

Xây dựng đồ thị có hướng với dung lượng cạnh và cạnh đảo dung lượng 0.

Bước 2

Thuật toán Dinic

Phân tầng đồ thị bằng BFS và tìm đường tăng luồng nghẽn bằng DFS.

Bước 3

Cặp ghép cực đại đồ thị hai phía

Quy đổi bài toán cặp ghép về mạng luồng nguồn S và đích T.

Lỗi thường gặp & Cách phòng tránh

•

Quên cập nhật dung lượng của cạnh đảo khi tăng luồng.

•

Không reset mảng phân tầng level[] sau mỗi pha BFS của thuật toán Dinic.

Danh sách bài tập thực hành (13 bài)

Trong mỗi mức độ, bài tập được xếp từ dễ nhất đến khó nhất — hãy đi theo số bước.

Nâng cao 13 bài

Thử thách

Thuật toán chuyên sâu: quy hoạch động, đồ thị, cây.

Chuyên sâu

Cấu trúc dữ liệu nâng cao và nhiều bước chứng minh.