UBND XÃ/PHƯỜNG …
TRƯỜNG THCS …
Đề chính thức
KỲ THI CHỌN HỌC SINH GIỎI CẤP TRƯỜNG
NĂM HỌC 2026 – 2027
Môn: Tin học – Lớp 8
Thời gian làm bài: 120 phút (không kể thời gian giao đề)
TỔNG QUAN ĐỀ THI
Bài | Tên bài | Tệp chương trình | Tệp dữ liệu vào | Tệp kết quả ra | Điểm |
|---|---|---|---|---|---|
1 | Cân bằng phân tử | MOLECULE.* | MOLECULE.INP | MOLECULE.OUT | 4,0 |
2 | Nén tín hiệu sinh thái | ECOSONG.* | ECOSONG.INP | ECOSONG.OUT | 4,0 |
3 | Đoạn cân bằng đối xứng | BALANCE.* | BALANCE.INP | BALANCE.OUT | 4,0 |
4 | Bức tường ánh sáng | LIGHTWALL.* | LIGHTWALL.INP | LIGHTWALL.OUT | 4,0 |
5 | Tập hợp tương khắc | CONFLICT.* | CONFLICT.INP | CONFLICT.OUT | 4,0 |
Dấu `` trong tên tệp được thay thế bằng đuôi `PAS`, `CPP` hoặc `PY` tùy thuộc vào ngôn ngữ lập trình thí sinh sử dụng (Pascal, C++ hoặc Python).*
BÀI 1. CÂN BẰNG PHÂN TỬ (4,0 điểm)
Tên tệp chương trình: `MOLECULE.PAS` hoặc `MOLECULE.CPP` hoặc `MOLECULE.PY`
Trong một trung tâm nghiên cứu công nghệ sinh học, các chuỗi liên kết vi sinh được gán mã định danh là các số nguyên dương. Một mã định danh được các nhà khoa học gọi là mã hài hòa nếu thỏa mãn tính chất: Khi lấy tích của tất cả các chữ số khác trừ đi tổng các chữ số của , kết quả thu được bằng đúng số lượng chữ số của .
Yêu cầu: Cho trước số nguyên dương . Hãy kiểm tra xem có phải là mã hài hòa hay không. Nếu không phải, hãy tìm số nguyên dương nhỏ nhất thỏa mãn sao cho là một mã hài hòa.
Dữ liệu vào (MOLECULE.INP)
- Gồm một dòng duy nhất chứa số nguyên dương ().
Kết quả ra (MOLECULE.OUT)
- Dòng 1: Ghi `YES` nếu là mã hài hòa; ngược lại ghi `NO`.
- Dòng 2: Nếu dòng 1 là `NO`, ghi ra số nguyên dương tìm được. (Nếu dòng 1 là `YES` thì không in dòng 2).
Giới hạn (Subtasks)
- Subtask 1 (50% số điểm): .
- Subtask 2 (50% số điểm): .
Ví dụ
MOLECULE.INP | MOLECULE.OUT | Giải thích |
|---|---|---|
`24` | `YES` | Số có 2 chữ số. Tích các chữ số khác 0 là . Tổng các chữ số là . Hiệu: (bằng đúng số lượng chữ số). Do đó là mã hài hòa. |
`23` | `NO` | Số có tích , tổng , hiệu nên in `NO`. Số hài hòa nhỏ nhất lớn hơn là . |
BÀI 2. NÉN TÍN HIỆU SINH THÁI (4,0 điểm)
Tên tệp chương trình: `ECOSONG.PAS` hoặc `ECOSONG.CPP` hoặc `ECOSONG.PY`
Một thiết bị cảm biến ghi âm tiếng chim trong rừng nguyên sinh gửi tín hiệu về trạm quan sát dưới dạng một xâu ký tự. Tín hiệu gốc chỉ bao gồm các chữ cái in hoa (`A` đến `Z`). Để tiết kiệm băng thông truyền tin, thiết bị áp dụng quy tắc nén và truyền dẫn như sau:
- Ký tự gạch dưới `_` là ký tự nhiễu đường truyền phát sinh ngẫu nhiên, cần phải loại bỏ hoàn toàn.
- Một đoạn nén có dạng `(kX)`, trong đó là một số nguyên dương và là một chữ cái in hoa, biểu thị cho việc chữ cái xuất hiện liên tiếp đúng lần. Ví dụ: `(3C)` tương đương với `CCC`.
- Các chữ cái in hoa đứng độc lập ngoài ngoặc biểu thị chính nó (xuất hiện đúng 1 lần).
Yêu cầu: Cho xâu ký tự nén nhận được từ cảm biến. Hãy:
1. Giải mã và khôi phục lại chuỗi tín hiệu gốc hoàn chỉnh (sau khi loại bỏ nhiễu `_` và bung các đoạn nén).
2. Tìm chữ cái in hoa xuất hiện nhiều lần nhất trong chuỗi tín hiệu gốc và số lần xuất hiện của nó. Nếu có nhiều chữ cái có cùng số lần xuất hiện nhiều nhất, chọn chữ cái có thứ tự từ điển nhỏ nhất.
Dữ liệu vào (ECOSONG.INP)
- Gồm một dòng duy nhất chứa xâu ký tự có độ dài không quá .
- Dữ liệu đảm bảo cấu trúc các cụm `(kX)` luôn hợp lệ, và tổng độ dài xâu sau khi giải nén không vượt quá .
Kết quả ra (ECOSONG.OUT)
- Dòng 1: Ghi xâu ký tự gốc sau khi giải nén.
- Dòng 2: Ghi chữ cái xuất hiện nhiều nhất cùng số lần xuất hiện của nó, cách nhau một dấu cách.
Giới hạn (Subtasks)
- Subtask 1 (40% số điểm): Xâu chỉ chứa chữ cái in hoa và ký tự `_` (không chứa dấu ngoặc).
- Subtask 2 (30% số điểm): Xâu có chứa đoạn nén `(kX)` với .
- Subtask 3 (30% số điểm): Xâu thỏa mãn đầy đủ ràng buộc với .
Ví dụ
ECOSONG.INP | ECOSONG.OUT | Giải thích |
|---|---|---|
`A_B(3C)__D(4A)` | `ABCCCDAAAA` | Loại bỏ `_` thu được `AB(3C)D(4A)`. Bung nén được xâu `ABCCCDAAAA`. Trong xâu gốc: `A` xuất hiện 5 lần, `B` 1 lần, `C` 3 lần, `D` 1 lần. Chữ cái xuất hiện nhiều nhất là `A` với 5 lần. |
BÀI 3. ĐOẠN CÂN BẰNG ĐỐI XỨNG (4,0 điểm)
Tên tệp chương trình: `BALANCE.PAS` hoặc `BALANCE.CPP` hoặc `BALANCE.PY`
Một dãy đo địa chấn gồm số nguyên được ghi nhận theo thời gian thực. Một đoạn con liên tiếp gồm các phần tử từ chỉ số đến chỉ số () được gọi là đoạn cân bằng đối xứng nếu thỏa mãn hai điều kiện:
1. Số lượng phần tử của đoạn là một số chẵn: độ dài với .
2. Tổng giá trị của phần tử đầu bằng tổng giá trị của phần tử sau:
Yêu cầu: Cho dãy số . Hãy tìm độ dài lớn nhất của một đoạn con cân bằng đối xứng trong dãy. Nếu không có đoạn con nào thỏa mãn, in ra số `0`.
Dữ liệu vào (BALANCE.INP)
- Dòng 1: Ghi số nguyên dương ().
- Dòng 2: Ghi số nguyên (), mỗi số cách nhau một khoảng trắng.
Kết quả ra (BALANCE.OUT)
- Ghi một số nguyên duy nhất là độ dài lớn nhất của đoạn cân bằng đối xứng tìm được.
Giới hạn (Subtasks)
- Subtask 1 (50% số điểm): .
- Subtask 2 (50% số điểm): .
Ví dụ
BALANCE.INP | BALANCE.OUT | Giải thích |
|---|---|---|
`6` | `6` | Toàn bộ dãy có độ dài 6 (chẵn với ). Nửa đầu gồm các phần tử có tổng là 6; nửa sau gồm có tổng là 6. Vì nên đoạn này cân bằng đối xứng và có độ dài 6. |
`5` | `0` | Không có đoạn con có độ dài chẵn nào thỏa mãn tính chất cân bằng. |
BÀI 4. BỨC TƯỜNG ÁNH SÁNG (4,0 điểm)
Tên tệp chương trình: `LIGHTWALL.PAS` hoặc `LIGHTWALL.CPP` hoặc `LIGHTWALL.PY`
Một bảng đèn LED ma trận kích thước gồm các bóng đèn đặt tại các ô (). Bóng đèn tại ô có cường độ chiếu sáng ban đầu là .
Để kiểm tra độ tương phản, kỹ sư đặt một khung cảm biến chữ thập tâm vào một ô không nằm trên viền của bảng ( và ). Khung chữ thập này sẽ bao quát ô tâm và đúng 4 ô lân cận kề cạnh: trên , dưới , trái , phải .
- Độ biến thiên tương phản tại tâm , ký hiệu là , được tính bằng tổng độ chênh lệch tuyệt đối giữa cường độ của ô tâm với 4 ô lân cận:
- Một ô (không nằm trên viền) được gọi là đỉnh sáng cục bộ nếu cường độ của nó lớn hơn nghiêm ngặt cường độ của cả 4 ô lân cận kề cạnh.
Yêu cầu:
1. Tìm vị trí ô tâm không nằm trên viền sao cho độ biến thiên tương phản đạt giá trị nhỏ nhất. Nếu có nhiều vị trí cùng đạt giá trị nhỏ nhất, chọn vị trí có chỉ số dòng nhỏ nhất; nếu vẫn trùng thì chọn vị trí có chỉ số cột nhỏ nhất.
2. Đếm số lượng các ô là đỉnh sáng cục bộ trên bảng đèn.
Dữ liệu vào (LIGHTWALL.INP)
- Dòng 1: Ghi hai số nguyên dương ().
- dòng tiếp theo, mỗi dòng gồm số nguyên không âm thể hiện ma trận ().
Kết quả ra (LIGHTWALL.OUT)
- Dòng 1: Ghi ba số nguyên cách nhau một dấu cách tương ứng với tọa độ ô tâm và giá trị biến thiên nhỏ nhất tìm được ở yêu cầu 1.
- Dòng 2: Ghi một số nguyên là số lượng đỉnh sáng cục bộ tìm được ở yêu cầu 2.
Giới hạn (Subtasks)
- Subtask 1 (40% số điểm): .
- Subtask 2 (60% số điểm): .
Ví dụ
LIGHTWALL.INP | LIGHTWALL.OUT | Giải thích |
|---|---|---|
`3 4` | `2 3 12` | Có 2 ô không nằm trên viền là và : |
BÀI 5. TẬP HỢP TƯƠNG KHẮC (4,0 điểm)
Tên tệp chương trình: `CONFLICT.PAS` hoặc `CONFLICT.CPP` hoặc `CONFLICT.PY`
Trong một hệ thống mã hóa truyền thông, người ta thu thập được một dãy số nguyên dương gồm phần tử: .
Hai phần tử tại hai vị trí khác nhau trong dãy được gọi là tương khắc nếu tích của chúng là một số chính phương (nghĩa là tồn tại số nguyên dương sao cho ). Ví dụ: cặp số tương khắc vì ; cặp số tương khắc vì .
Hệ thống cần chọn ra một tập hợp gồm nhiều phần tử nhất từ dãy số ban đầu sao cho trong tập hợp được chọn không có bất kỳ hai phần tử nào tương khắc với nhau (tức là tích của hai phần tử bất kỳ được chọn đều không phải là số chính phương).
Yêu cầu: Hãy xác định số lượng phần tử lớn nhất của tập hợp thỏa mãn điều kiện trên.
Dữ liệu vào (CONFLICT.INP)
- Dòng 1: Ghi số nguyên dương ().
- Dòng 2: Ghi số nguyên dương (), các số cách nhau một khoảng trắng.
Kết quả ra (CONFLICT.OUT)
- Ghi một số nguyên duy nhất là số lượng phần tử lớn nhất của tập hợp chọn được.
Giới hạn (Subtasks)
- Subtask 1 (30% số điểm): và .
- Subtask 2 (30% số điểm): và .
- Subtask 3 (40% số điểm): và .
Ví dụ
CONFLICT.INP | CONFLICT.OUT | Giải thích |
|---|---|---|
`7` | `3` | Ta có thể chọn tập hợp gồm 3 số: . |
--------- HẾT ---------
Cán bộ coi thi không giải thích gì thêm.
Họ và tên thí sinh: ................................................ Số báo danh: ........................


