30 bộ đề ôn thi Học sinh giỏi Tin học THCS, có lời giải Python và C++
Mỗi mùa ôn thi học sinh giỏi, thầy cô dạy Tin học THCS thường gặp cùng một khó khăn: đề thì nhiều nhưng đề tốt, có lời giải đúng và có bộ test để chấm thì rất ít. Đề sưu tầm thường là dạng “nhập từ bàn phím, in ra màn hình”, một bài có nhiều ý nhỏ, không có ràng buộc dữ liệu. Lời giải nếu có thì chưa được chạy kiểm tra. Còn bộ test để chấm tự động thì gần như phải tự làm.
Bumbii Academy biên soạn bộ 30 đề ôn thi Học sinh giỏi Tin học THCS để giải quyết đúng những việc đó: đề viết theo chuẩn đề thi thật, lời giải bằng Python và C++ đã được kiểm chứng, kèm bộ test chấm được ngay.
Tóm tắt
Phần tiêu đề “Tóm tắt”- 30 đề, 118 bài, sắp xếp từ dễ đến khó: từ mức cấp huyện cơ bản đến tiệm cận đề cấp tỉnh.
- Mỗi đề có 3–4 bài, tổng 20 điểm, thời gian gợi ý 150 phút. Trong một đề, bài sau khó hơn bài trước.
- Đề viết theo chuẩn đề thi thật:
- đọc/ghi file
.INP/.OUT; - có ràng buộc dữ liệu và subtask (“Có 60% số test với n ≤ 1000”…);
- ví dụ có giải thích.
- đọc/ghi file
- Đề bài miễn phí trên bumbii.tech, Đề số 01 có sẵn lời giải để xem trước.
- Bộ tài liệu đầy đủ (có phí) gồm:
- PDF lời giải chi tiết bằng Python và C++;
- 2172 test (12–20 test mỗi bài) để chấm tự động;
- công cụ chấm
cham.pychấm cả lớp một lần.
Nội dung 30 đề
Phần tiêu đề “Nội dung 30 đề”Bộ đề chia thành ba chặng, độ khó tăng dần:
| Chặng | Mức độ | Kiến thức chính |
|---|---|---|
| Đề 01–10 | Cấp huyện cơ bản | Số học, chữ số, xử lí xâu, mảng một chiều, vét cạn |
| Đề 11–20 | Cấp huyện nâng cao | Sàng nguyên tố, sắp xếp, tổng tiền tố, đếm, hai con trỏ, chặt nhị phân |
| Đề 21–30 | Tiệm cận cấp tỉnh | Quy hoạch động, mảng hai chiều, ngăn xếp, hàng đợi, tìm kiếm theo chiều rộng (BFS) |
Mỗi đề được thiết kế như một đề thi hoàn chỉnh, không phải một danh sách bài rời rạc:
- Bài 1 cài đặt trực tiếp, để học sinh nào cũng lấy được điểm.
- Bài 2 cần một kĩ thuật cơ bản.
- Bài 3 cần thuật toán hiệu quả thì mới qua được các test lớn.
- Bài 4 là bài phân loại. Bài này vẫn có subtask nhỏ, để học sinh chưa nghĩ ra thuật toán tối ưu vẫn kiếm được một phần điểm bằng cách vét cạn.
Cách chia subtask này giúp các em tập một kĩ năng rất quan trọng khi đi thi: không bỏ trắng bài khó, mà viết cách đơn giản trước để lấy điểm các test nhỏ, rồi mới tối ưu.
Ví dụ một vài bài trong bộ đề: Tỉa hàng cây (chặt nhị phân theo kết quả), Xếp hàng chụp ảnh (cây chỉ số nhị phân), Tòa nhà cao hơn gần nhất (ngăn xếp đơn điệu), Xâu con chung dài nhất (quy hoạch động trên xâu), Phá tường (BFS trên trạng thái).
Danh sách đầy đủ 30 đề kèm chủ đề từng đề có tại Bộ đề ôn thi HSG Tin học THCS.
Đề bài miễn phí, lời giải mẫu ở Đề số 01
Phần tiêu đề “Đề bài miễn phí, lời giải mẫu ở Đề số 01”Toàn bộ đề bài của 30 đề được đăng miễn phí trên website, mỗi đề một trang, học sinh có thể đọc và làm bài ngay trên điện thoại hay máy tính.
Đề số 01 có sẵn lời giải trên web để thầy cô và các em xem trước cách trình bày: ý tưởng, cách lấy điểm từng subtask, độ phức tạp, các bẫy hay gặp, và code Python, C++ hoàn chỉnh.
Bộ tài liệu đầy đủ (có phí) gồm những gì?
Phần tiêu đề “Bộ tài liệu đầy đủ (có phí) gồm những gì?”1. PDF 30 đề kèm lời giải
Phần tiêu đề “1. PDF 30 đề kèm lời giải”Mỗi bài có hướng dẫn giải gồm các phần:
- ý tưởng;
- cách đạt từng mức điểm, từ cách vét cạn đến cách tối ưu;
- độ phức tạp thuật toán;
- lưu ý về tràn số và tốc độ đọc dữ liệu;
- code Python và C++ hoàn chỉnh, có chú thích tiếng Việt.
Có hai cách sắp xếp để thầy cô chọn theo nhu cầu:
- Lời giải ngay sau mỗi đề: tiện để tự học, làm xong đề nào xem lời giải đề đó.
- Hết 30 đề rồi mới tới lời giải: tiện để in riêng phần đề phát cho học sinh làm bài.
Mục lục có số trang và liên kết nhảy nhanh giữa đề và lời giải.
2. Bộ test chấm tự động
Phần tiêu đề “2. Bộ test chấm tự động”Bộ test có 2172 test, mỗi bài 12–20 test, chia đúng theo tỉ lệ subtask ghi trong đề. Ví dụ đề ghi “Có 60% số test với n ≤ 1000” thì đúng 60% số test thỏa điều kiện đó. Nhờ vậy, điểm học sinh nhận được phản ánh đúng mức thuật toán các em làm được.
3. Công cụ chấm cham.py
Phần tiêu đề “3. Công cụ chấm cham.py”Thầy cô chấm bài bằng công cụ dòng lệnh cham.py, chạy được trên Windows, macOS và
Linux. Công cụ này chỉ cần Python, tự biên dịch bài C++, và chấm cả thư mục bài
làm của lớp một lần, xuất bảng điểm ra file CSV mở bằng Excel.
Hướng dẫn chi tiết cách chấm có tại Hướng dẫn chấm bài.
Lời giải được kiểm chứng như thế nào?
Phần tiêu đề “Lời giải được kiểm chứng như thế nào?”Mỗi bài trong bộ đề đều đi qua quy trình kiểm tra sau:
- Hai lời giải độc lập bằng Python và C++ phải cho kết quả giống nhau trên mọi test.
- Một lời giải vét cạn viết theo cách ngây thơ nhất được dùng để đối chiếu. Hàng trăm test ngẫu nhiên nhỏ được sinh ra để so sánh với lời giải chính.
- Kiểm tra dữ liệu: mọi file test được kiểm tra tự động có đúng định dạng và ràng buộc của đề.
- Kiểm tra độ mạnh của test: một lời giải “chậm cố ý” (kiểu học sinh chưa tối ưu) phải đạt đúng các subtask nhỏ và phải trượt test lớn. Nhờ vậy bộ test phân loại được học sinh.
- Kiểm tra thời gian: lời giải Python chạy dưới 1 giây, để các em thi bằng Python cũng lấy trọn điểm được với thuật toán đúng.
Ai nên dùng bộ đề này?
Phần tiêu đề “Ai nên dùng bộ đề này?”- Thầy cô bồi dưỡng đội tuyển HSG Tin học THCS: có sẵn 30 đề thi thử theo đúng cấu trúc đề thật, kèm bộ test để chấm và bảng điểm cho cả lớp.
- Học sinh lớp 8, 9 tự ôn: làm đề trên web, tự chấm bằng
cham.py, đối chiếu lời giải và các cách tiếp cận từ vét cạn đến tối ưu. - Phụ huynh muốn con có một lộ trình ôn luyện bài bản, tăng dần độ khó.
Gợi ý lộ trình ôn luyện:
- Làm mỗi tuần 1–2 đề trong 150 phút như thi thật, theo thứ tự từ đề 01.
- Chấm bằng bộ test, xem mình mất điểm ở subtask nào.
- Đọc lời giải, chú ý phần “cách đạt từng mức điểm”, rồi tự viết lại lời giải tối ưu.
- Với đề 21–30, tập trung vào quy hoạch động và các cấu trúc dữ liệu, vì đây là phần thường phân loại ở đề cấp tỉnh.
Nhận bộ tài liệu đầy đủ (có phí)
Phần tiêu đề “Nhận bộ tài liệu đầy đủ (có phí)”Đề bài của cả 30 đề luôn được chia sẻ miễn phí tại bumbii.tech/hoc-sinh-gioi/on-thi-thcs.
Thầy cô và các em muốn mua bộ tài liệu đầy đủ (có phí, gồm PDF lời giải và bộ test) vui lòng liên hệ tác giả Th.S Trần Huy Phúc:
- Zalo: 0972465159
- Facebook: facebook.com/tran.huyphuc.3
- Email: phuc@bumbii.tech
Chúc thầy cô và các em một mùa ôn thi hiệu quả!
Do số lượng đề bài, bài giải và bộ test rất nhiều nên tác giả đang kiểm tra từng bước. Thầy cô và các em học sinh nếu thấy sai sót xin vui lòng liên hệ tác giả qua Facebook hoặc Zalo (0972465159). Xin chân thành cảm ơn.