Tuyển sinh 10 chuyên Tin Ninh Bình 2026-2027 (đề tham khảo)
SỞ GIÁO DỤC VÀ ĐÀO TẠO
NINH BÌNH
ĐỀ THI THAM KHẢO
KỲ THI TUYỂN SINH LỚP 10 THPT
Năm học 2026 - 2027
Môn: Tin học - Đề thi chuyên
Thời gian làm bài: 150 phút
Tổng quan bài thi
Phần tiêu đề “Tổng quan bài thi”| STT | Tên bài | Tên chương trình | Dữ liệu vào | Dữ liệu ra | Điểm |
|---|---|---|---|---|---|
| 1 | Tìm số | NUMBER.* | NUMBER.INP | NUMBER.OUT | 2,0 |
| 2 | Xâu con | SUBSTRG.* | SUBSTRG.INP | SUBSTRG.OUT | 2,0 |
| 3 | Ghép cặp | GHEPCAP.* | GHEPCAP.INP | GHEPCAP.OUT | 2,0 |
| 4 | Đan dấu | UNSIGN.* | UNSIGN.INP | UNSIGN.OUT | 2,0 |
| 5 | Tam Phân | TAMPHAN.* | TAMPHAN.INP | TAMPHAN.OUT | 2,0 |
Dấu * được thay thế bởi PAS, CPP, PY tương ứng với ngôn ngữ lập trình Pascal, C++ hoặc
Python.
Hãy lập trình giải các bài toán sau:
Câu 1. Tìm số (2,00 điểm)
Phần tiêu đề “Câu 1. Tìm số (2,00 điểm)”Cho q câu hỏi, câu hỏi thứ i (1 ≤ i ≤ q) có dạng cho trước 2 số nguyên xi, yi, bạn cần tìm 2 số nguyên dương ai, bi mà tổng của chúng bằng xi và hiệu giữa ai và bi bằng yi.
Dữ liệu: Vào từ file văn bản NUMBER.INP:
- Dòng thứ nhất chứa số nguyên q (1 ≤ q ≤ 20) là số lượng câu hỏi;
- q dòng tiếp theo, dòng thứ i (1 ≤ i ≤ q) chứa 2 số nguyên xi, yi (−106 ≤ xi, yi ≤ 106) mô tả câu hỏi thứ i.
Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.
Kết quả: Ghi ra file văn bản NUMBER.OUT gồm q dòng, dòng thứ i ứng với câu hỏi thứ i ghi ra 2
số nguyên dương cần tìm theo thứ tự không giảm, nếu không tồn tại thì ghi No solution.
Ví dụ:
| NUMBER.INP | NUMBER.OUT |
|---|---|
28 44 1 | 2 6No solution |
Câu 2. Xâu con (2,00 điểm)
Phần tiêu đề “Câu 2. Xâu con (2,00 điểm)”Cho xâu S độ dài n. Hãy tìm xâu con dài nhất của S, sao cho mỗi ký tự tham gia vào xâu con không quá k lần (1 ≤ n ≤ 100 000, 1 ≤ k ≤ n).
Yêu cầu: Chỉ ra độ dài của xâu con tìm được và vị trí của ký tự đầu tiên thuộc xâu con trong xâu S ban đầu. Nếu có nhiều cách chọn xâu con - chỉ ra cách chọn xâu con với vị trí bắt đầu là nhỏ nhất.
Dữ liệu: Vào từ file văn bản SUBSTRG.INP:
- Dòng đầu tiên chứa 2 số nguyên n và k.
- Dòng thứ hai chứa xâu S.
Kết quả: Ghi ra file văn bản SUBSTRG.OUT một dòng chứa hai số nguyên: độ dài xâu con và vị trí
ký tự đầu tiên của xâu con. Nếu có nhiều xâu con thì ghi vị trí của xâu con đầu tiên trong dãy.
Ví dụ:
| SUBSTRG.INP | SUBSTRG.OUT |
|---|---|
5 2ababa | 4 1 |
Câu 3. Ghép cặp (2,00 điểm)
Phần tiêu đề “Câu 3. Ghép cặp (2,00 điểm)”Trong một hệ thống ngân hàng điện tử, mỗi giao dịch được ghi nhận là một số nguyên đại diện cho số tiền đã giao dịch (số tiền có thể là số âm, dương hoặc bằng 0 ứng với các giao dịch như rút tiền, gửi tiền, tra cứu số dư …). Để phát hiện các hành vi gian lận, bộ phận bảo mật muốn kiểm tra xem có bao nhiêu cặp giao dịch có tổng đúng bằng một giá trị khả nghi x nào đó (ví dụ như tổng tiền bị mất, hoặc giá trị cụ thể của một giao dịch đáng ngờ).
Cho số lượng giao dịch cần phải kiểm tra là n, số tiền trong từng giao dịch lần lượt là các số nguyên a1, a2, … an (trong đó |ai| ≤ 109, 1 ≤ n ≤ 105). Với số nguyên x cho trước (1 ≤ x ≤ 109), bạn hãy viết một chương trình giúp bộ phận bảo mật kiểm tra số lượng cặp giao dịch (i, j) thỏa mãn các điều kiện:
- ai + aj = x
- 1 ≤ i < j ≤ n
Dữ liệu: Vào từ file văn bản GHEPCAP.INP:
- Dòng đầu tiên chứa hai số nguyên n và x.
- Dòng thứ 2 chứa n số nguyên a1, a2, … an.
Mỗi số trên cùng một dòng ghi cách nhau ít nhất một dấu cách.
Kết quả: Ghi ra file văn bản GHEPCAP.OUT gồm một dòng chứa một số nguyên duy nhất là số cặp
(ai, aj) tìm được.
Ví dụ:
| GHEPCAP.INP | GHEPCAP.OUT |
|---|---|
9 135 12 7 10 9 1 2 3 11 | 3 |
Ràng buộc:
- Sub 1: 50% số test có n ≤ 5000.
- Sub 2: 50% số test còn lại không có ràng buộc gì thêm.
Câu 4. Tổng đan dấu (2,00 điểm)
Phần tiêu đề “Câu 4. Tổng đan dấu (2,00 điểm)”Cho dãy n số nguyên a1, a2, …, an-1, an. Với mỗi đoạn từ ai đến aj (1 ≤ i ≤ j ≤ n) của dãy đã cho, tổng T = ai − ai+1 + ai+2 − … aj gọi là tổng đan dấu của đoạn [i, j], ví dụ: đoạn [2, 2] có T = a2; đoạn [3, 7] có T = a3 − a4 + a5 − a6 + a7.
Yêu cầu: Tìm đoạn có tổng đan dấu lớn nhất.
Dữ liệu: Vào từ tệp văn bản UNSIGN.INP gồm 2 dòng:
- Dòng đầu tiên ghi số nguyên dương n (3 ≤ n ≤ 106);
- Dòng thứ hai ghi lần lượt các số a1, a2, …, an (|ai| ≤ 109).
Kết quả: Ghi ra tệp văn bản UNSIGN.OUT ghi tổng đan dấu lớn nhất tìm được.
Ví dụ:
| UNSIGN.INP | UNSIGN.OUT |
|---|---|
42 4 3 5 | 6 |
Ràng buộc:
- Có 20% số test với 3 ≤ n ≤ 102;
- Có 30% số test với 102 ≤ n ≤ 5 × 103;
- Có 50% số test với các trường hợp còn lại.
Câu 5. Tam phân (2,00 điểm)
Phần tiêu đề “Câu 5. Tam phân (2,00 điểm)”Xâu tam phân là xâu chỉ chứa kí tự 0, 1, 2. Đếm số lượng xâu tam phân khác nhau có độ dài đúng bằng n kí tự sao cho không có hai kí tự 1 liền kề nhau. Kết quả tính được có thể rất lớn nên chỉ cần đưa ra đáp án là phần dư của phép chia cho 109 + 7.
Yêu cầu: Hãy lập trình giải bài toán trên.
Dữ liệu: Vào từ tệp văn bản TAMPHAN.inp chứa một số nguyên dương n (1 ≤ n ≤ 105).
Kết quả: Ghi ra tệp văn bản TAMPHAN.out ghi một số nguyên duy nhất là đáp án cần tìm.
Ví dụ:
| TAMPHAN.INP | TAMPHAN.OUT |
|---|---|
2 | 8 |
Giải thích ví dụ: Với n = 2 ta có 8 xâu tam phân thỏa mãn yêu cầu là: 00, 01, 02, 10, 12, 20, 21, 22.
Ràng buộc:
- Có 30% số test với n ≤ 15;
- Có 30% số test với 10 < n ≤ 102;
- Có 40% số test với các trường hợp còn lại.
--- HẾT ---
Cấu trúc đề thi
Phần tiêu đề “Cấu trúc đề thi”Sở GDĐT Ninh Bình ban hành cấu trúc đề thi tuyển sinh lớp 10 THPT môn Tin học - đề thi chuyên kèm theo Công văn số 1229/SGDĐT-QLCL ngày 20/10/2025.
I. Quy định chung
-
Thời gian làm bài: 150 phút.
-
Hình thức thi: Lập trình trên máy tính.
-
Điểm toàn bài: 10,0 điểm.
-
Phạm vi kiến thức: Nội dung kiến thức của đề thi nằm trong chương trình môn Tin học cấp THCS ban hành kèm theo Thông tư số 32/2018/TT-BGDĐT ngày 26/12/2018 của Bộ trưởng Bộ Giáo dục và Đào tạo, cụ thể gồm các chủ đề:
- Chủ đề A: Máy tính và cộng đồng
- Chủ đề F: Giải quyết vấn đề với sự trợ giúp của máy tính
Gồm các mạch kiến thức:
- Biểu diễn thông tin và dữ liệu; đơn vị đo thông tin.
- Các cấu trúc lập trình: tuần tự, rẽ nhánh, lặp.
- Thuật toán cơ bản: tìm kiếm, sắp xếp, đệ quy đơn giản.
- Xử lý dãy số, mảng, chuỗi.
- Bài toán số học: ƯCLN, BCNN, số nguyên tố, phân tích thừa số, bài toán chia hết, hệ đếm.
- Bài toán hình học tính toán: chu vi, diện tích, khoảng cách tọa độ.
- Bài toán thống kê - xác suất cơ bản: trung bình cộng (Mean), trung vị (Median), mốt (Mode).
- Mô hình hóa bài toán thực tiễn bằng các cấu trúc dữ liệu và thuật toán tối ưu phù hợp để có thể lập trình giải quyết bài toán đó trên máy tính.
-
Cấp độ nhận thức: Nhận biết, thông hiểu khoảng 40%; Vận dụng khoảng 40%; Vận dụng cao khoảng 20%.
-
Lưu ý:
- Câu hỏi ứng dụng giải quyết vấn đề thực tiễn chiếm khoảng 4,0 điểm.
- Học sinh cần nắm vững một ngôn ngữ lập trình bậc cao để giải một số bài toán (có thể sử dụng một trong các ngôn ngữ lập trình như: Pascal, C++ hoặc Python).
- Nếu đề thi yêu cầu vào/ra dữ liệu qua thiết bị chuẩn (màn hình, bàn phím) thì khi lập trình không cần khai báo đọc/ghi tệp văn bản.
- Nếu đề thi yêu cầu vào/ra dữ liệu bằng tệp văn bản thì học sinh phải đặt tên tệp đúng theo yêu cầu của đề bài và không được thực hiện vào/ra qua thiết bị chuẩn.
II. Cấu trúc đề thi
| TT | Nội dung | Điểm |
|---|---|---|
| 1 | Câu 1. Sử dụng kiểu dữ liệu cơ bản; các câu lệnh tuần tự, rẽ nhánh, lặp để giải quyết bài toán đơn giản. Vận dụng các kiểu dữ liệu cơ bản cùng với các câu lệnh tuần tự, rẽ nhánh và lặp để giải quyết những bài toán đơn giản. Mức độ nhận thức: Nhận biết (NB) - Thông hiểu (TH) | 2,00 |
| 2 | Câu 2. Sử dụng cấu trúc dữ liệu phù hợp để giải quyết bài toán đơn giản. Sử dụng các cấu trúc tuần tự, rẽ nhánh và lặp cùng với các kiểu dữ liệu có cấu trúc như mảng và xâu. Mức độ nhận thức: Nhận biết (NB) - Thông hiểu (TH) | 2,00 |
| 3 | Câu 3. Vận dụng các thuật toán cơ bản để giải quyết bài toán (tìm kiếm, sắp xếp, …). Vận dụng các thuật toán cơ bản như tìm kiếm (tuyến tính, nhị phân), sắp xếp, cùng các kỹ thuật duyệt mảng, duyệt xâu, các thuật toán số học để giải quyết bài toán. Mức độ nhận thức: Vận dụng (VD) - Vận dụng cao (VDC) Có thể chia thành các subtask để đánh giá mức độ tối ưu của chương trình | 2,00 |
| 4 | Câu 4. Vận dụng các thuật toán phù hợp để giải quyết bài toán nâng cao tối ưu về thời gian và bộ nhớ. Mức độ nhận thức: Vận dụng (VD) - Vận dụng cao (VDC) Có thể chia thành các subtask để đánh giá mức độ tối ưu của chương trình | 2,00 |
| 5 | Câu 5. Vận dụng các thuật toán để tìm kết quả của bài toán đếm (quy tắc cộng, quy tắc nhân, …). Mức độ nhận thức: Vận dụng (VD) - Vận dụng cao (VDC) Có thể chia thành các subtask để đánh giá mức độ tối ưu của chương trình | 2,00 |