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

HSG THPT Lào Cai 2025-2026

SỞ GIÁO DỤC VÀ ĐÀO TẠO LÀO CAI ĐỀ CHÍNH THỨC
(Đề thi có 04 trang, gồm 05 câu)

KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH THPT Năm học 2025 - 2026
Môn: Tin học - Ngày thi: 27/01/2026
Thời gian: 180 phút (không kể thời gian giao đề)


CâuTên chương trìnhDữ liệu vào, raĐiểm
Câu 1Cau1.*Sử dụng vào, ra chuẩn5,0
Câu 2Cau2.*Sử dụng vào, ra chuẩn4,0
Câu 3Cau3.*Sử dụng vào, ra chuẩn4,0
Câu 4Cau4.*Sử dụng vào, ra chuẩn4,0
Câu 5Cau5.*Sử dụng vào, ra chuẩn3,0

Dấu * là đại diện cho phần mở rộng, được thay bằng pas hoặc cpp hoặc py tùy theo ngôn ngữ lập trình được sử dụng là Pascal hoặc C++ hoặc Python.

Cho hai số nguyên dương a và b. Hãy đếm số lượng ước nguyên dương của tích a và b.

Dữ liệu vào từ bàn phím gồm:

  • Dòng 1: chứa số nguyên dương T (T ≤ 10⁴) là số lượng bộ số (a, b).
  • T dòng tiếp theo, mỗi dòng chứa một bộ số nguyên dương a, b (a, b ≤ 10⁶).

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

  • Gồm T dòng, mỗi dòng chứa một số nguyên là số lượng ước nguyên dương của tích a và b tương ứng với dữ liệu vào.

Ví dụ:

Dữ liệu vàoKết quảGiải thích
2
2 4
6 7
4
8
- Tích của 2 × 4 = 8, số 8 có 4 ước nguyên dương.
- Tích của 6 × 7 = 42, số 42 có 8 ước nguyên dương.

Ràng buộc:

  • Có 80% số test có T = 1; a, b ≤ 10³.
  • Có 20% số test còn lại có T = 10⁴; a, b ≤ 10⁶.

Bảng chữ cái tiếng Anh in hoa gồm: 26 kí tự từ ‘A’ đến ‘Z’; có 5 nguyên âm là ‘A’, ‘E’, ‘I’, ‘O’, ‘U’; các kí tự còn lại là phụ âm. Cho một xâu S chỉ gồm các chữ cái in hoa.

  • Bài toán loại 1: đếm số cách chọn bộ ba vị trí (i, j, k) trong xâu S để ghép đúng thứ tự chọn và tạo thành xâu “HSG”. Với 1 ≤ i < j < k ≤ L; L là độ dài xâu S.
  • Bài toán loại 2: yêu cầu như Bài toán loại 1, nhưng có thêm ràng buộc là các kí tự có vị trí ở giữa bộ 3 chỉ số đó không là kí tự nguyên âm.

Dữ liệu vào từ bàn phím:

  • Dòng 1: chứa số nguyên dương T. Nếu T = 1 thì giải bài toán loại 1. Nếu T = 2 thì giải bài toán loại 2.
  • Dòng 2: chứa xâu S có độ dài không quá 10⁵.

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

  • Ghi ra kết quả giải bài toán tương ứng với dữ liệu vào.

Ví dụ 1:

Dữ liệu vàoKết quảGiải thích
1
HSEHSG
3Giải bài toán loại 1: có 3 bộ vị trí tìm được là (1, 2, 6); (1, 5, 6); (4, 5, 6) ghép được xâu “HSG”.

Ví dụ 2:

Dữ liệu vàoKết quảGiải thích
2
HSEHSG
1Giải bài toán loại 2: có 1 bộ vị trí tìm được là (4, 5, 6) ghép được xâu “HSG”.

Ràng buộc:

  • Có 40% test có T = 1, xâu S dài không quá 100 kí tự.
  • Có 40% test khác có T = 2, xâu S dài không quá 100 kí tự.
  • Có 20% test còn lại có xâu S dài không quá 10⁵ kí tự.

Bạn Dũng viết lên bảng N số nguyên dương a₁, a₂, …, a_N khác nhau đôi một. Biết rằng, dãy con tăng độ dài L là dãy được định nghĩa:

  • 1 ≤ k₁ < k₂ < … < k_L ≤ N; L ≥ 2;
  • a_(k₁) < a_(k₂) < … < a_(k_L).

Hai dãy con tăng của dãy ban đầu được gọi là khác nhau nếu có ít nhất một phần tử khác nhau.

Bạn Dũng có một số nguyên dương X, bạn ấy sẽ thực hiện các nhiệm vụ khác nhau:

  • Nếu X ≤ N thì bạn Dũng sẽ đếm số lượng cách chọn X số chẵn từ dãy trên.
  • Nếu X > N thì bạn Dũng sẽ đếm số lượng dãy con tăng khác nhau có tổng lớn hơn hoặc bằng X.

Dữ liệu vào từ bàn phím gồm:

  • Dòng 1: chứa số nguyên dương N và X (X ≤ 10¹⁸).
  • Dòng 2: chứa N số nguyên dương a₁, a₂, …, a_N (aᵢ ≤ 10⁹, 1 ≤ i ≤ N).

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

  • Số nguyên dương duy nhất là kết quả tìm được tương ứng với dữ liệu đầu vào.

Ví dụ 1:

Dữ liệu vàoKết quảGiải thích
6 2
1 2 3 4 6 16
6Có 6 cách chọn 2 số chẵn từ dãy a là: {2,4}, {2,6}, {2,16}, {4,6}, {4,16}, {6, 16}.

Ví dụ 2:

Dữ liệu vàoKết quảGiải thích
4 6
1 2 3 4
7Có 7 dãy con tăng có tổng lớn hơn hoặc bằng 6 là: {1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}, {2, 4}, {3, 4}, {1, 2, 3, 4}

Ràng buộc:

  • Có 40% số test có N ≤ 10⁶; X = 1; X ≤ N.
  • Có 40% số test khác có N ≤ 50; 2 ≤ X ≤ N.
  • Có 20% số test còn lại có 2 ≤ N ≤ 20; X > N.

Cho dãy số gồm N số nguyên dương a₁, a₂, … a_N. Trung vị của một dãy số có N là phần tử ở vị trí ⌊(N+1)/2⌋ của dãy số đó sau khi đã sắp xếp.

Bạn cần trả lời Q lệnh hỏi trên dãy số ban đầu, mỗi lệnh hỏi cho bởi cặp số [L, R] và yêu cầu tìm trung vị của dãy con liên tiếp được giới hạn bởi chỉ số đầu là L và chỉ số cuối là R.

Ví dụ: dãy a gồm các số 15, 6, 8, 11, 7. Kết quả lệnh hỏi [1, 2] là 6; kết quả lệnh hỏi [2, 5] là 7; kết quả lệnh hỏi [1, 5] là 8.

Dữ liệu vào từ bàn phím gồm:

  • Dòng 1: chứa số nguyên dương N và Q (N, Q ≤ 10⁵).
  • Dòng 2: chứa N số nguyên dương a₁, a₂, … a_N (với aᵢ ≤ 10⁹, 1 ≤ i ≤ N).
  • Q dòng tiếp theo, mỗi dòng chứa hai số nguyên L và R (1 ≤ L ≤ R ≤ N).

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

  • Gồm Q dòng, mỗi dòng là kết quả của một lệnh hỏi tương ứng với dữ liệu vào.

Ví dụ:

Dữ liệu vàoKết quảGiải thích
5 3
25 36 8 11 17
1 2
2 5
1 5
25
11
17
Kết quả lệnh hỏi [1,2] là 25.
Kết quả lệnh hỏi [2,5] là 11.
Kết quả lệnh hỏi [1,5] là 17.

Ràng buộc:

  • Có 30% số test có N, Q ≤ 500.
  • Có 30% số test khác có N, Q ≤ 10⁴.
  • Có 40% số test còn lại không có giới hạn gì thêm.

Đất nước Z có n thành phố, các thành phố được đánh số từ 1 đến n. Có đúng n − 1 con đường hai chiều nối giữa các thành phố thỏa mãn điều kiện: có thể đi từ thành phố bất kì đến tất cả các thành phố còn lại theo đường trực tiếp hoặc gián tiếp qua các thành phố khác.

Đất nước Z thường có các sự kiện văn hóa lớn, mỗi lần sự kiện sẽ được tổ chức tại một thành phố, điều này ảnh hưởng tới chi phí di chuyển trên các con đường. Cụ thể, nếu thành phố u là thành phố tổ chức sự kiện văn hóa, khi đó các con đường hướng tới thành phố u sẽ có chi phí là a còn các con đường đi xa thành phố u sẽ có chi phí là b. Con đường từ thành phố i tới thành phố j được gọi là hướng tới u nếu đường đi ngắn nhất từ i tới u dài hơn đường đi ngắn nhất từ j tới u, ngược lại thì con đường từ i tới j được gọi là đi xa thành phố u.

Khi sự kiện văn hóa diễn ra, một người di chuyển qua s con đường sẽ bị mất chi phí bằng tổng của từng lần di chuyển, lần di chuyển thứ k (1 ≤ k ≤ s) sẽ mất chi phí k × costₖ, trong đó costₖ bằng a hoặc b tùy thuộc lần di chuyển thứ k đi qua con đường hướng tới thành phố tổ chức sự kiện hay đi xa thành phố tổ chức sự kiện.

Một câu hỏi thường gặp ở đất nước Z là: nếu sự kiện văn hóa diễn ra tại thành phố u, có hai người ở thành phố i và thành phố j thì chi phí nhỏ nhất để hai người đó gặp nhau tại một thành phố nào đó là bao nhiêu?

Yêu cầu: Cho thông tin về các con đường của đất nước Z và q câu hỏi, mỗi lệnh hỏi được mô tả bằng 5 số u, i, j, a, b. Hãy tìm chi phí nhỏ nhất để hai người gặp nhau.

Dữ liệu vào từ bàn phím gồm:

  • Dòng 1: chứa số nguyên dương n và q (n, q ≤ 10⁵).
  • n − 1 dòng tiếp theo, mỗi dòng chứa số nguyên dương x và y - mô tả có con đường nối thành phố x với thành phố y (1 ≤ x, y ≤ n, x ≠ y).
  • q dòng tiếp theo, mỗi dòng chứa 5 số nguyên dương u, i, j, a, b (1 ≤ u, i, j ≤ n; i ≠ j; a, b ≤ 10⁶).

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

  • Gồm q dòng, mỗi dòng ghi kết quả tương ứng với lệnh hỏi đầu vào.

Ví dụ:

Dữ liệu vàoKết quảGiải thích
8 2
1 2
5 6
5 3
4 3
8 2
3 1
7 5
3 3 2 5 2
5 8 7 8 12
6
80
Lệnh hỏi 1: Hai người gặp nhau ở thành phố 2
Chi phí của người thứ nhất: 2 + 2 × 2 = 6.
Chi phí của người thứ hai: 0
Tổng chi phí là: 6.
Lệnh hỏi 2: Hai người gặp nhau ở thành phố 3
Chi phí người thứ nhất: 8 + 8 × 2 + 8 × 3 = 48.
Chi phí người thứ hai: 8 + 12 × 2 = 32.
Tổng chi phí là: 80.
Cây 8 thành phố minh họa lệnh hỏi 2: sự kiện ở thành phố 5 (u), hai người ở thành phố 8 (i) và 7 (j), điểm gặp nhau là thành phố 3

Ràng buộc:

  • Có 20% số test với n, q ≤ 100.
  • Có 20% số test khác có n, q ≤ 1000.
  • Có 20% số test khác có n ≤ 2000, q ≤ 10⁵.
  • Có 20% số test khác có n, q ≤ 10⁵ và b ≥ n × a.
  • Có 20% số test còn lại không có ràng buộc bổ sung.

  • 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.