HSG lớp 12 Hà Nội 2025-2026 (Bảng A)
SỞ GIÁO DỤC VÀ ĐÀO TẠO
HÀ NỘI
ĐỀ CHÍNH THỨC
(Đề thi có 04 trang)
KỲ THI CHỌN HSG THÀNH PHỐ VÀ CHỌN ĐỘI TUYỂN HSG DỰ THI QUỐC GIA CÁC MÔN VĂN HOÁ
Lớp 12 THPT năm học 2025 - 2026
Môn thi: Tin học (Bảng A) - Ngày thi: 22 tháng 9 năm 2025
Thời gian làm bài: 180 phút
Tổng quan đề thi
Phần tiêu đề “Tổng quan đề thi”| STT | Tên bài | Tên tệp chương trình | Tên tệp dữ liệu vào | Tên tệp kết quả ra | Điểm |
|---|---|---|---|---|---|
| Bài 1 | Trí tuệ nhân tạo | TTNT.* | TTNT.INP | TTNT.OUT | 6,0 |
| Bài 2 | Đèn lồng | DL.* | DL.INP | DL.OUT | 5,0 |
| Bài 3 | Rừng cây | RC.* | RC.INP | RC.OUT | 4,0 |
| Bài 4 | Dãy F-Fibonacci | DF.* | DF.INP | DF.OUT | 3,0 |
| Bài 5 | Thông tin | TT.* | TT.INP | TT.OUT | 2,0 |
Chú ý: Dấu * được thay thế bởi CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là C/C++ hoặc Python.
Bài 1. Trí tuệ nhân tạo (6,0 điểm)
Phần tiêu đề “Bài 1. Trí tuệ nhân tạo (6,0 điểm)”Một trí tuệ nhân tạo cần kết nối với một máy chủ từ xa để đồng bộ hóa dữ liệu. Máy chủ này hoạt động theo một chu kỳ cố định để bảo trì và tối ưu hiệu năng:
- X giây ở trạng thái “Online” (cho phép kết nối);
- Sau đó, S giây ở trạng thái “Offline” (từ chối mọi kết nối).
Chu kỳ này lặp lại liên tục và bắt đầu từ giây thứ 1 với trạng thái “Online”.
Yêu cầu: Một trí tuệ nhân tạo gửi yêu cầu kết nối đến máy chủ vào giây thứ T. Hãy kiểm tra tại giây thứ T, máy chủ đang ở trạng thái “Online” hay “Offline”?
Dữ liệu vào từ tệp văn bản TTNT.INP:
- Dòng đầu tiên gồm số nguyên dương X (1 ≤ X ≤ 10⁹);
- Dòng thứ hai gồm số nguyên dương S (1 ≤ S ≤ 10⁹);
- Dòng thứ ba gồm số nguyên dương T (1 ≤ T ≤ 10⁹).
Kết quả ghi ra tệp văn bản TTNT.OUT:
- Nếu tại giây thứ T máy chủ đang “Offline” ghi ra số 0, máy chủ đang “Online” ghi ra số 1.
Ví dụ:
| TTNT.INP | TTNT.OUT |
|---|---|
575 | 1 |
5720 | 0 |
Ràng buộc:
- Có 80% số test ứng với 80% số điểm có T ≤ 10⁶;
- 20% số test còn lại ứng với 20% số điểm không có ràng buộc thêm.
Bài 2. Đèn lồng (5,0 điểm)
Phần tiêu đề “Bài 2. Đèn lồng (5,0 điểm)”Nhân dịp Tết Trung thu, khu phố đã treo N chiếc đèn lồng có màu vàng và màu đỏ, từ trái sang phải. Một dãy đèn lồng liên tiếp được gọi là “đẹp” nếu số lượng đèn màu vàng gấp đôi số lượng đèn màu đỏ.
Yêu cầu: Cho một xâu S chỉ gồm các ký tự ‘V’ và ‘D’ mô tả dãy đèn lồng, ký tự ‘V’ mô tả đèn lồng màu vàng và ký tự ‘D’ mô tả đèn lồng màu đỏ. Hãy tìm độ dài của dãy đèn lồng “đẹp” dài nhất.
Dữ liệu vào từ tệp văn bản DL.INP:
- Một xâu S chỉ gồm các ký tự ‘V’ và ‘D’ mô tả dãy đèn có độ dài không vượt quá 10⁵.
Kết quả ghi ra tệp văn bản DL.OUT:
- Một số nguyên duy nhất là kết quả của bài toán.
Ví dụ:
| DL.INP | DL.OUT | Giải thích |
|---|---|---|
VDVVDDVVD | 6 | Dãy đèn lồng “đẹp” dài nhất được in đậm: VDVVDDVVD. |
Ràng buộc:
- Có 60% số test ứng với 60% số điểm có độ dài xâu S không vượt quá 100;
- 20% số test khác ứng với 20% số điểm có độ dài xâu S không vượt quá 1000;
- 20% số test còn lại ứng với 20% số điểm không có ràng buộc thêm.
Bài 3. Rừng cây (4,0 điểm)
Phần tiêu đề “Bài 3. Rừng cây (4,0 điểm)”Trong một khu rừng có N cây. Các cây được đánh số từ 1 đến N, có tất cả M loại cây.
Cây thứ i thuộc loại Bᵢ (1 ≤ Bᵢ ≤ M) và có chiều cao là Cᵢ.
Chênh lệch chiều cao của rừng cây được tính theo công thức: tổng các giá trị tuyệt đối của hiệu chiều cao giữa tất cả các cặp cây khác loại nhau. Nghĩa là chênh lệch chiều cao của rừng cây được tính bằng công thức:
∑|Cᵢ − Cⱼ| ∀ 1 ≤ i < j ≤ N và Bᵢ ≠ Bⱼ.
Yêu cầu: Hãy tính chênh lệch chiều cao của rừng cây đã cho.
Dữ liệu vào từ tệp văn bản RC.INP:
- Dòng đầu tiên gồm hai số nguyên dương N và M (1 ≤ N ≤ 10⁵; M ≤ N);
- Dòng thứ hai gồm N số nguyên dương Bᵢ (1 ≤ Bᵢ ≤ M);
- Dòng thứ ba gồm N số nguyên dương Cᵢ (1 ≤ Cᵢ ≤ 10⁹).
Kết quả ghi ra tệp văn bản RC.OUT:
- Một số nguyên duy nhất là chênh lệch chiều cao của rừng cây đã cho.
Ví dụ:
| RC.INP | RC.OUT | Giải thích |
|---|---|---|
5 31 2 3 2 13 4 5 6 7 | 14 | Chênh lệch chiều cao của rừng cây là: |C₁ − C₂| + |C₁ − C₃| + |C₁ − C₄| + |C₂ − C₃| + |C₂ − C₅| + |C₃ − C₄| + |C₃ − C₅| + |C₄ − C₅| = |3 − 4| + |3 − 5| + |3 − 6| + |4 − 5| + |4 − 7| + |5 − 6| + |5 − 7| + |6 − 7| = 1 + 2 + 3 + 1 + 3 + 1 + 2 + 1 = 14 |
Ràng buộc:
- Có 60% số test ứng với 60% số điểm có 1 ≤ N ≤ 1000; 1 ≤ Cᵢ ≤ 200;
- 20% số test khác ứng với 20% số điểm có 1 ≤ N ≤ 10⁵; M = 2;
- 20% số test còn lại ứng với 20% số điểm không có ràng buộc thêm.
Bài 4. Dãy F-Fibonacci (3,0 điểm)
Phần tiêu đề “Bài 4. Dãy F-Fibonacci (3,0 điểm)”Với hai số nguyên dương X, Y cho trước, dãy F-Fibonacci là dãy số được định nghĩa như sau:
- F₀ = X; F₁ = Y;
- Fᵢ = Fᵢ₋₁ + Fᵢ₋₂ với mọi i ≥ 2.
Cho dãy A gồm N số nguyên dương A₁, A₂, A₃, …, A_N. Người ta muốn chia dãy A thành các đoạn con liên tiếp sao cho tổng các phần tử của mỗi đoạn con đều thuộc dãy F-Fibonacci.
Yêu cầu: Hãy đếm số cách chia dãy A thành các đoạn con sao cho tổng các phần tử của mỗi đoạn con đều thuộc dãy F-Fibonacci.
Dữ liệu vào từ tệp văn bản DF.INP:
- Dòng đầu tiên gồm số nguyên dương N (1 ≤ N ≤ 10⁵);
- Dòng thứ hai gồm N số nguyên dương A₁, A₂, A₃, …, A_N (1 ≤ Aᵢ ≤ 10⁹; 1 ≤ i ≤ N);
- Dòng thứ ba gồm hai số nguyên dương X, Y (1 ≤ X ≤ Y ≤ 100).
Kết quả ghi ra tệp văn bản DF.OUT:
- Một số nguyên duy nhất là kết quả bài toán sau khi chia dư cho 10⁹ + 7.
Ví dụ:
| DF.INP | DF.OUT | Giải thích |
|---|---|---|
61 3 2 2 1 41 1 | 4 | Có 4 cách chia dãy số thỏa mãn như sau: • {1}, {3}, {2}, {2}, {1, 4};• {1}, {3 2}, {2}, {1, 4};• {1 3 2 2}, {1 4};• {1 3 2 2 1 4}. |
Ràng buộc:
- Có 40% số test ứng với 40% số điểm có 1 ≤ N ≤ 20; 1 ≤ Aᵢ ≤ 10⁵ (1 ≤ i ≤ N);
- 40% số test khác ứng với 40% số điểm có 1 ≤ N ≤ 1000;
- 20% số test còn lại ứng với 20% số điểm không có ràng buộc thêm.
Bài 5. Thông tin (2,0 điểm)
Phần tiêu đề “Bài 5. Thông tin (2,0 điểm)”Trong sứ mệnh khám phá bản đồ số, một rô-bốt tự hành được giao một nhiệm vụ di chuyển dọc theo một dãy gồm N điểm thu thập thông tin, được đánh số từ 1 đến N.
Điểm thu thập thông tin i (1 ≤ i ≤ N) có lượng dữ liệu là Aᵢ, nếu rô-bốt thu thập thông tin tại điểm này thì sẽ tiêu thụ Wᵢ năng lượng.
Rô-bốt được lập trình để quét các điểm thông tin liên tiếp và phải tuân thủ nghiêm ngặt các điều kiện sau:
- Số lượng điểm thu thập thông tin được quét phải là bội số của K (để đảm bảo tính toàn vẹn của các gói thông tin);
- Tổng năng lượng tiêu thụ để rô-bốt thu thập thông tin không được vượt quá giới hạn S của pin. Coi năng lượng tiêu thụ khi di chuyển qua các điểm thông tin bằng 0.
Yêu cầu: Hãy viết chương trình lập trình cho rô-bốt để tìm ra các điểm thông tin liên tiếp thỏa mãn điều kiện trên mà tổng lượng dữ liệu thu thập được là lớn nhất.
Dữ liệu vào từ tệp văn bản TT.INP:
- Dòng đầu tiên gồm ba số nguyên N, K, S (1 ≤ K ≤ N ≤ 10⁵; 1 ≤ S ≤ 10¹²);
- Dòng thứ hai gồm N số nguyên A₁, A₂, …, A_N (|Aᵢ| ≤ 10⁹; 1 ≤ i ≤ N);
- Dòng thứ ba gồm N số nguyên W₁, W₂, …, W_N (0 ≤ Wᵢ ≤ 10⁹; 1 ≤ i ≤ N).
Kết quả ghi ra tệp văn bản TT.OUT:
- Gồm một số nguyên là lượng dữ liệu thu thập được lớn nhất. Nếu không tồn tại các điểm thông tin liên tiếp nào khả thi, ghi ra số 0.
Ví dụ:
| TT.INP | TT.OUT | Giải thích |
|---|---|---|
5 2 63 -1 2 5 -22 1 2 2 1 | 7 | - Chọn hai điểm thông tin liên tiếp là: 3 và 4. (có số lượng điểm thu thập thông tin là 2, chia hết cho K); - Tổng năng lượng tiêu thụ: 2 + 2 = 4 < 6; - Tổng lượng dữ liệu thu thập được: 2 + 5 = 7. |
3 2 510 20 51 1 1 | 30 | - Chọn hai điểm thông tin liên tiếp là: 1 và 2. (có số lượng điểm thu thập thông tin là 2, chia hết cho K); - Tổng năng lượng tiêu thụ: 1 + 1 = 2 < 5; - Tổng lượng dữ liệu thu thập được: 10 + 20 = 30. |
Ràng buộc:
- Có 25% số test ứng với 25% số điểm thoả mãn: N ≤ 100;
- 25% số test khác ứng với 25% số điểm thoả mãn: Wᵢ = 0 (1 ≤ i ≤ N);
- 25% số test khác ứng với 25% số điểm thoả mãn: K = 1;
- 25% số test còn lại ứng với 25% số điểm không có ràng buộc thêm.
Giám thị không giải thích gì thêm.