Kỳ thi Olympic 24/3 là một trong những sân chơi trí tuệ uy tín và thử thách nhất dành cho học sinh khối THPT tại tỉnh Quảng Nam. Tài liệu đề thi chính thức môn Tin học lớp 11 năm 2021 không chỉ là một bài kiểm tra kiến thức mà còn là nguồn tư liệu quý giá cho những bạn học sinh đang ôn luyện đội tuyển học sinh giỏi (HSG), cũng như các giáo viên tìm kiếm đề bài chất lượng để bồi dưỡng tư duy lập trình cho học sinh.
Đề thi tập trung đánh giá khả năng tư duy thuật toán, kỹ năng xử lý số lớn và khả năng tối ưu hóa mã nguồn trong thời gian giới hạn, bám sát định hướng thi lập trình thi đấu (Competitive Programming).
Cấu trúc & Nội dung trọng tâm
Đề thi được thiết kế với 4 bài toán độc lập, bao quát nhiều chuyên đề quan trọng trong lập trình thi đấu, với tổng điểm là 20. Cụ thể như sau:
- Bài 1: Tổng bình phương các chữ số (SQUARE)
- Dạng bài: Xử lý số nguyên lớn (Big Integer).
- Trọng tâm: Yêu cầu tính tổng bình phương các chữ số của một số N có giá trị cực lớn (lên đến $10^{64}$), đòi hỏi học sinh phải biết cách đọc dữ liệu dưới dạng chuỗi (string) thay vì các kiểu dữ liệu số thông thường.
- Bài 2: Ước chung lớn nhất (MAXGCD)
- Dạng bài: Lý thuyết số và Giai thừa.
- Trọng tâm: Tìm $GCD(A!, B!)$ và lấy dư cho $10^9 + 7$. Bài toán kiểm tra tư duy về tính chất của giai thừa (ước chung lớn nhất của hai giai thừa chính là giai thừa của số nhỏ hơn trong hai số).
- Bài 3: Sơn gạch (SONGACH)
- Dạng bài: Toán tổ hợp / Quy hoạch động.
- Trọng tâm: Đếm số cách sơn gạch thỏa mãn điều kiện về số viên gạch đặc biệt. Đây là bài toán điển hình về đếm tổ hợp với điều kiện ràng buộc, yêu cầu xử lý số dư lớn ($998,244,353$).
- Bài 4: Thỏ và cà rốt (RABBIT)
- Dạng bài: Lý thuyết đồ thị - Tìm đường đi ngắn nhất.
- Trọng tâm: Sử dụng thuật toán BFS (Breadth-First Search) để tìm đường đi ngắn nhất trên lưới ô vuông có chướng ngại vật, với điều kiện di chuyển đặc thù (xuống dưới, sang trái, sang phải).
Điểm nổi bật của tài liệu
Bộ đề thi này sở hữu nhiều ưu điểm vượt trội, biến nó thành tài liệu ôn tập lý tưởng:
- Phân hóa đối tượng rõ rệt: Mỗi bài tập đều có ma trận điểm (sub-tasks). Ví dụ, bài 1 chia mức độ từ $N \le 10^6$ đến $N \le 10^{64}$, giúp học sinh từ mức trung bình đến xuất sắc đều có thể ghi điểm.
- Tính toàn diện: Đề thi bao phủ đủ các mảng kiến thức từ cơ bản (vòng lặp, chuỗi) đến nâng cao (tổ hợp, đồ thị), giúp người học rèn luyện tư duy đa chiều.
- Chuẩn hóa thi đấu: Tài liệu cung cấp đầy đủ quy định về file vào/ra (.INP, .OUT), thời gian chạy (1s) và bộ nhớ, giúp học sinh làm quen với môi trường chấm bài tự động như Themis.
- Thách thức tư duy: Các bài toán không chỉ yêu cầu viết code chạy được mà còn yêu cầu tối ưu thuật toán để vượt qua các test case lớn (đặc biệt là bài 3 và bài 4).
Hướng dẫn ôn tập & Lời khuyên học tập
Để khai thác tối đa hiệu quả từ bộ đề thi này, học sinh và giáo viên có thể áp dụng chiến thuật sau:
- Đối với học sinh:
- Bước 1: Đọc kỹ ràng buộc (constraints). Đừng vội code ngay, hãy phân tích xem kiểu dữ liệu nào là phù hợp (ví dụ: dùng
long long trong C++ hoặc BigInteger trong Java/Python cho bài 1).
- Bước 2: Tập trung giải quyết các sub-task dễ trước để nắm chắc điểm, sau đó mới tối ưu thuật toán cho các test case khó hơn.
- Bước 3: Với bài đồ thị (Bài 4), hãy vẽ sơ đồ di chuyển ra giấy để tránh nhầm lẫn về tọa độ và hướng di chuyển.
- Đối với giáo viên:
- Sử dụng đề thi này để hướng dẫn học sinh cách phân tích độ phức tạp thời gian $O(N)$ và độ phức tạp không gian.
- Khuyến khích học sinh tìm nhiều cách tiếp cận khác nhau cho Bài 3 (từ liệt kê, quy hoạch động đến công thức tổ hợp) để mở rộng tư duy.
Hy vọng với sự phân tích chi tiết này, các bạn học sinh sẽ có lộ trình ôn luyện hiệu quả và đạt kết quả cao trong các kỳ thi học sinh giỏi Tin học sắp tới!