Bỏ qua để đến nội dung

Tuyển sinh 10 chuyên Tin Phú Thọ 2026-2027 (đề tham khảo)

UBND TỈNH PHÚ THỌ SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐỀ THAM KHẢO

KÌ THI TUYỂN SINH VÀO LỚP 10 THPT Năm học 2026 - 2027
Đề thi môn: Tin học
Dành cho thí sinh thi vào lớp chuyên Tin học
Thời gian làm bài: 150 phút, không kể thời gian phát đề


#Tên bàiChương trìnhDữ liệuKết quảGiới hạnĐiểm
1Vị trí robotROBOTPOS.*Nhập từ bàn phímGhi ra màn hình1s/test2,5
2Đếm cặp sốMODPAIR.*Nhập từ bàn phímGhi ra màn hình1s/test2,5
3Các số KaprekarKAPREKAR.*Nhập từ bàn phímGhi ra màn hình1s/test2,5
4Đếm tập conCSUBS.*Nhập từ bàn phímGhi ra màn hình1s/test2,5

Lưu ý: Thí sinh thay * trong tên chương trình thành PAS hoặc CPP tuỳ theo ngôn ngữ lập trình mà thí sinh sử dụng là Pascal hoặc C/C++.

Lập chương trình giải các bài toán sau:

Một robot bắt đầu ở vị trí 0 trên trục tọa độ Ox. Robot thực hiện các bước di chuyển như sau:

  • Bước 1: sang phải a đơn vị
  • Bước 2: sang trái b đơn vị
  • Bước 3: sang phải a đơn vị
  • Bước 4: sang trái b đơn vị
  • … và tiếp tục xen kẽ như vậy.

Hãy xác định vị trí cuối cùng của robot sau k bước.

Dữ liệu (nhập từ bàn phím): Một dòng chứa ba số nguyên a, b, k - đơn vị dịch chuyển và số bước (1 ≤ a, b, k ≤ 109).

Kết quả (ghi ra màn hình): Một dòng duy nhất là vị trí cuối cùng của robot trên trục Ox sau k bước.

Ví dụ:

InputOutputGiải thích
5 2 38Robot đi: +5 (b1), −2 (b2), +5 (b3) → Tổng = 5 − 2 + 5 = 8

Cho dãy số a1, a2, …, an là các số nguyên dương. Cho thêm số nguyên dương m. Nhiệm vụ của bạn là đếm số lượng cặp chỉ số (i, j) thỏa mãn:

  • 1 ≤ i < j ≤ n
  • ai mod m = aj mod m

Dữ liệu (nhập từ bàn phím):

  • Dòng đầu chứa hai số nguyên n, m (1 ≤ n, m ≤ 106).
  • Dòng thứ hai chứa n số nguyên a1, a2, …, an (1 ≤ ai ≤ 109).

Kết quả (ghi ra màn hình): Một dòng duy nhất là số lượng cặp (i, j) thỏa mãn điều kiện.

Subtasks:

#ĐiểmRàng buộc bổ sung
150%n ≤ 103
250%Không có ràng buộc bổ sung

Ví dụ:

InputOutputGiải thích
3 2
2 3 4
1Các phần dư theo mod 2: 0, 1, 0 → cặp (1, 3) cùng dư 0

Một số nguyên dương n được gọi là số Kaprekar nếu thỏa mãn điều kiện sau:

  • Bình phương n thu được một số có tối đa 2d chữ số, trong đó d là số chữ số của n.
  • Chia số bình phương thành hai phần: phần bên phải có đúng d chữ số, phần bên trái là phần còn lại (có thể rỗng).
  • Cộng hai phần này lại, nếu kết quả bằng chính n thì n là số Kaprekar.

Ví dụ:

  • 92 = 81, chia thành 8 và 1, tổng 8 + 1 = 9 → 9 là số Kaprekar.
  • 452 = 2025, chia thành 20 và 25, tổng 20 + 25 = 45 → 45 là số Kaprekar.

Yêu cầu: cho hai số nguyên L, R (L ≤ R), liệt kê tất cả các số Kaprekar trong đoạn [L, R].

Dữ liệu (nhập từ bàn phím): Một dòng duy nhất chứa hai số nguyên L, R (1 ≤ L ≤ R ≤ 109).

Kết quả (ghi ra màn hình):

  • Dòng 1: số nguyên k là số số Kaprekar nằm trong đoạn [L, R].
  • Dòng 2: k số nguyên là các số Kaprekar nằm trong đoạn [L, R], theo thứ tự tăng.

Subtasks:

#ĐiểmRàng buộc bổ sung
150%R ≤ 103
250%Không có ràng buộc bổ sung

Ví dụ:

InputOutput
1 1005
1 9 45 55 99
46 540

An có một bộ sưu tập đồ chơi gồm A món. Mỗi món đồ chơi thuộc về một trong T loại, các loại đồ chơi được đánh số từ 1 đến T.

An nhận ra rằng có thể tạo ra nhiều nhóm đồ chơi khác nhau bằng cách chọn một số món (có thể từ cùng một hoặc nhiều loại). Mỗi nhóm là một tập hợp không phân biệt thứ tự, nghĩa là hai nhóm được coi là khác nhau nếu tồn tại một loại đồ chơi có số lượng khác nhau trong hai nhóm.

Yêu cầu: Đếm số nhóm đồ chơi An có thể tạo ra có số lượng món không nhỏ hơn S và không lớn hơn B. Trong một nhóm, số lượng đồ chơi của một loại nào đó không được lớn hơn số lượng thực tế An có.

Kết quả lấy số dư trong phép chia cho 1,000,000.

Dữ liệu (nhập từ bàn phím):

  • Dòng đầu tiên chứa 4 số nguyên: T, A, S, B - số loại đồ chơi, tổng số đồ chơi, giới hạn nhỏ nhất và lớn nhất số món được chọn (1 ≤ T ≤ 1000; 1 ≤ S ≤ B ≤ A).
  • A dòng tiếp theo, mỗi dòng chứa số nguyên từ 1 đến T - biểu thị loại của từng món đồ chơi.

Kết quả (ghi ra màn hình): Một dòng duy nhất là số nhóm đồ chơi có kích thước từ S đến B, chia dư cho 1,000,000.

Subtasks:

#ĐiểmRàng buộc bổ sung
120%A ≤ 20
230%A ≤ 100
350%Không có ràng buộc bổ sung

Ví dụ:

InputOutputGiải thích
3 5 2 3
1
2
2
1
3
10Có 3 loại đồ chơi với số lượng 2, 2, 1. Các nhóm An có thể tạo ra là:
(0, 1, 1), (0, 2, 0), (0, 2, 1), (1, 0, 1), (1, 1, 0),
(1, 1, 1), (1, 2, 0), (2, 0, 0), (2, 0, 1), (2, 1, 0)

--- HẾT ---

Thí sinh không được sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Cấu trúc đề thi tuyển sinh 10 - môn chuyên Tin học (tỉnh Phú Thọ, năm học 2026-2027).

1. Phương thức thi

  • Lập trình trên máy tính cá nhân.
  • Số câu: 4 câu; thang điểm: 10 điểm; thời gian: 150 phút.
  • Mức độ: Thông hiểu 25% tổng số điểm; Vận dụng 50% tổng số điểm; Vận dụng cao 25% tổng số điểm.

2. Cấu trúc đề thi

CâuĐiểmNội dung/chủ đềMức độ
12,5Kĩ năng lập trình cơ bản: các kiểu dữ liệu đơn giản; cấu trúc rẽ nhánh, cấu trúc lặp.
Kiến thức Toán học cơ bản: các thuật toán số học cơ bản (kiểm tra số nguyên tố, số chính phương, tìm UCLN, BCNN, …); các tính toán hình học cơ bản (chu vi, diện tích, toạ độ).
Thông hiểu
22,5Kĩ năng lập trình: thủ tục/hàm (chương trình con); kiểu dữ liệu có cấu trúc (mảng một chiều, mảng hai chiều, xâu kí tự, …).
Các thuật toán cơ bản: sắp xếp, tìm kiếm, phân tích số, …
Các bài toán có yêu cầu cài đặt phức tạp hơn bài 1, yêu cầu tư duy thuật toán ở mức độ Trung bình.
Vận dụng
32,5Các kĩ thuật: tìm kiếm nhị phân, hai con trỏ, tổng tiền tố, đếm phân phối, …
Các bài toán trên dãy số, bảng số, xâu kí tự, …
Yêu cầu tư duy thuật toán ở mức độ Trung bình - Khá.
Vận dụng
42,5Các chiến lược giải bài toán Tin: chiến lược tham lam, quy hoạch động cơ bản, đệ quy quay lui, chia để trị, …
Các cấu trúc dữ liệu: hàng đợi, ngăn xếp, …
Yêu cầu tư duy thuật toán ở mức độ Khá - Giỏi.
Vận dụng cao

3. Gợi ý nội dung ôn tập

Ngôn ngữ lập trình

Chủ đềNội dung
Cấu trúc rẽ nhánhBiết câu lệnh rẽ nhánh (dạng thiếu và dạng đủ); biết câu lệnh ghép; viết đúng các lệnh rẽ nhánh dạng thiếu, dạng đủ, kết hợp các câu lệnh điều kiện; sử dụng đúng và có hiệu quả câu lệnh rẽ nhánh.
Cấu trúc lặpHiểu, vận dụng được câu lệnh lặp với số lần biết trước, chưa biết trước; hiểu, vận dụng được các câu lệnh lặp lồng nhau.
Dữ liệu kiểu mảng một chiềuBiết khái niệm mảng một chiều; biết cách khai báo mảng, truy cập các phần tử của mảng, nhập xuất dữ liệu; biết sử dụng các phần tử của mảng trong biểu thức tính toán.
Dữ liệu kiểu mảng hai chiềuBiết khái niệm mảng hai chiều; biết cách khai báo mảng, truy cập các phần tử của mảng, nhập xuất dữ liệu; biết sử dụng các phần tử của mảng trong biểu thức tính toán.
Dữ liệu kiểu xâu kí tựBiết nhập xâu, in xâu kí tự; chuẩn hóa xâu kí tự; đếm số lần xuất hiện của các kí tự, đếm từ, kiểm tra xâu đối xứng, mã hóa xâu kí tự; các bài toán liên quan đến xâu kí tự.
Chương trình conBiết cách sử dụng chương trình con, chương trình con đệ quy; biết tổ chức, sử dụng, kết hợp các chương trình con để giải quyết một bài toán.
Cấu trúc dữ liệuNgăn xếp, hàng đợi.

Thuật toán/kĩ thuật lập trình

  • Thuật toán tìm kiếm, thay thế, sắp xếp: biết thuật toán tìm kiếm, sắp xếp trên mảng cơ bản và áp dụng vào giải một số bài toán liên quan; hiểu và cài đặt được thuật toán tìm kiếm nhị phân; biết vận dụng để giải một số bài toán.
  • Kĩ thuật: two-pointers, prefix-sum, distribution-counting.
  • Quy hoạch động.
  • Đệ quy quay lui.

Kiến thức Toán

  • Số học: kiểm tra tính nguyên tố, tính chia hết, phép chia có dư, số chính phương, dãy Fibonacci, tìm ước chung lớn nhất, bội chung nhỏ nhất, …; nắm chắc một số tính chất số học cơ bản của số nguyên (chẵn lẻ, chia hết, nguyên tố, chính phương, số hoàn hảo, số bậc thang, số siêu nguyên tố hoặc tính chất số học tự định nghĩa); xây dựng thuật toán hiệu quả để kiểm tra các tính chất số học cơ bản; tìm các chữ số tận cùng, đếm số chữ số, đảo ngược số, tính tổng các chữ số; phân tích ra thừa số nguyên tố; thuật toán Euclid tìm ƯCLN của 2 số; sàng số nguyên tố Eratosthenes; vận dụng các tính chất số học của số nguyên để giải bài toán.
  • Dãy số, hoán vị, bảng số: các bài toán liên quan đến dãy số (tổng các số chẵn, số lẻ, tổng số nguyên tố, tổng số chính phương…); mảng cộng dồn, mảng đánh dấu; kỹ thuật 2 con trỏ, đếm phân phối; bài toán duyệt toàn bộ; bài toán tìm kiếm nhị phân.
  • Hình học: tính toán các giá trị/số đo của các hình hình học phẳng cơ bản (khoảng cách, chu vi, diện tích, …); toạ độ của điểm, phương trình đường thẳng trên mặt phẳng.

4. Phương thức chấm

  • Bài thi được chấm bằng chương trình chấm thi tự động, dữ liệu là các file test đã được chuẩn bị trước.
  • Kiểm tra những câu phần mềm chấm thi chấm 0 điểm do các lỗi kĩ thuật (tên chương trình, input, output, lỗi dịch do phiên bản của NNLT) thì giám khảo chấm theo đoạn chương trình đúng (chú ý: khi chấm bằng tay thì chỉ được 50% điểm tối đa và phải thấp hơn những bài có điểm chấm tự động; nếu có trường hợp đặc biệt thì cần có sự thống nhất của tất cả thành viên tổ giám khảo chấm bài).

5. Tài liệu tham khảo