Chuyên trang ôn thi chuyên tin C++ TP.HCM

Luyện Thi Chuyên Tin C++ Hệ Thống Giáo Án Độc Quyền

Lộ trình 48 buổi đào tạo học sinh từ nền tảng C++ cơ bản đến tư duy giải đề chuyên tin, với bài giảng, code mẫu và chiến thuật thực chiến.

Tài Liệu Cấp Giáo Viên

Chi Tiết 48 Buổi Học (C++)

Cẩm Nang Giáo Viên

Phân Tích Đề & Chiến Thuật Thi TP.HCM

Phân tích chuyên sâu đề thi Phổ thông Năng khiếu và Sở GD&ĐT (Lê Hồng Phong, Trần Đại Nghĩa) trong 5 năm trở lại đây.

1. Xu Hướng Đề Thi (5 Năm Gần Đây)

Chấm dứt thời đại thuật toán "Trâu" (Brute-force)

Chấm thi theo Subtask (từng khoảng giới hạn dữ liệu) đã thành chuẩn mực. Nếu chỉ dùng thuật toán ngây thơ O(N²), học sinh chỉ lấy được 30-40% số điểm.

Prefix Sum & Binary Search là bắt buộc

Gần như 100% đề thi có ít nhất 1 câu yêu cầu Mảng cộng dồn hoặc Chặt nhị phân để giảm độ phức tạp từ O(N²) xuống O(N) hoặc O(N log N).

Sự phân hóa nằm ở Quy hoạch động (DP)

Đề Sở GDĐT thường ra các dạng DP kinh điển có biến tấu nhẹ (Ba lô, LIS, LCS, DP Lưới). Đề PTNK ẩn giấu DP dưới một bài toán cần tư duy toán học. Học sinh làm được bài này cầm chắc 80% vé đậu.

2. Giải Mã Cấu Trúc Đề Thi 150 Phút

Bài 1: Khởi Động (20-25%)

Toán học cơ bản, đếm số lượng

Bẫy: Tràn số. Thường cho N ≤ 10⁹ hoặc 10¹⁸, bắt buộc dùng long long.

Chiến thuật: Không dùng vòng lặp, áp dụng công thức toán học O(1) hoặc vòng lặp O(√N).

Bài 2: Tối Ưu Nhanh (25-30%)

Mảng / Chuỗi / Tham lam

Dạng: Sắp xếp (Sort custom), Hai con trỏ, Đếm tần suất (Map).

Chiến thuật: Bắt buộc lấy điểm trọn vẹn bằng cách dùng thành thạo STL C++.

Bài 3: Trọng Tâm (25-30%)

Quy Hoạch Động / Prefix Sum

Bẫy: Không nhận ra trạng thái DP hoặc không biết Binary Search on Answer.

Chiến thuật: Viết ra giấy: 1. Gọi dp[i] là gì? 2. Base case? 3. Công thức chuyển?

Bài 4: Phân Hóa (15-20%)

Đồ Thị / Cấu Trúc Dữ Liệu

Dạng: Loang BFS/DFS trên lưới, Dijkstra hoặc Ad-hoc.

Chiến thuật: Đừng đi sâu vào Segment Tree. Ăn chắc Subtask 1 bằng thuật toán trâu O(N²).

3. Rèn "Phản Xạ Dữ Liệu" (Cần In Ra Dán Ở Lớp)

Nếu đề cho giới hạn (Constraints) Thuật toán cần nghĩ tới ngay Độ phức tạp an toàn
N ≤ 20 Đệ quy quay lui (Backtracking), Bitmask O(2^N) hoặc O(N!)
N ≤ 1,000 Vòng lặp lồng nhau, Quy hoạch động 2D O(N^2)
N ≤ 100,000 (10^5) Sắp xếp (Sort), Binary Search, Set/Map, Two Pointers O(N log N)
N ≤ 10^7 Prefix Sum, Mảng đánh dấu (Frequency array), Sàng nguyên tố O(N)
N ≥ 10^9 Toán học thuần túy, Lũy thừa nhị phân O(1) hoặc O(log N)

Quản lý thời gian 150 phút

  • 10 phút đầu: Đọc TẤT CẢ các bài. Phân loại dễ khó. Dựng template sẵn sàng.
  • 60 phút tiếp theo: Cày nát Bài 1 và Bài 2. Phải test thật kỹ số 0, số âm, biên. Lấy trọn điểm.
  • 50 phút tiếp theo: Tập trung giải Bài 3 (Tìm điểm mấu chốt của DP hoặc BS).
  • 30 phút cuối: Luật sắt: KHÔNG BỎ TRỐNG BÀI NÀO. Viết code trâu (Brute-force) cho Bài 4 để "săn" 30-40% điểm Subtask 1.

Thư Viện Đề Thi

Đề Thi Mẫu & Luyện Tập