| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | Bảng mã Ascii (HSG '18) | 100 (p) | 1.0s | 256M |
| 2 | Đếm cặp đôi (HSG'20) | 100 (p) | 1.0s | 977M |
| 3 | XKT - Cắt xâu kí tự (HSG'17) | 100 (p) | 1.0s | 500M |
| 4 | Thừa số nguyên tố (HSG'20) | 100 (p) | 1.0s | 640M |
| 5 | NUMSPLIT - Sinh số (HSG'15) | 100 (p) | 1.0s | 500M |
| 6 | FINALZERO - Chữ số 0 tận cùng (HSG'16) | 100 (p) | 1.0s | 500M |
| 7 | CATBIA - Cắt bìa (HSG'19) | 100 (p) | 1.0s | 500M |
| 8 | THUONG - Tìm phần thưởng (HSG'19) | 100 (p) | 1.0s | 500M |
| 9 | PHANSO - Phân số có giá trị nguyên (HSG'17) | 100 (p) | 1.0s | 500M |
Trong bảng mã ASCII, \(26\) kí tự chữ cái thường từ ‘a’ đến ‘z’ được mã hóa tương ứng bằng các số tự nhiên từ \(97\) đến \(122\).
Cho một xâu kí tự \(S\) chỉ chứa toàn các kí tự chữ cái thường. Gọi \(P\) là xâu mã hóa tương ứng của xâu \(S\) bằng cách mã hóa từng ký tự trong \(S\) (theo bảng mã ASCII) và viết liên tiếp nhau. Ví dụ: \(S\) = ‘ab’ thì \(P\) = ‘9798’.
Hãy viết chương trình nhập vào từ bàn phím một xâu đã mã hóa \(P\) và in ra màn hình xâu kí tự \(S\).
Test 2
979899
abc
Test 3
1009711097110103
danang
Cho dãy số \(A\) gồm \(n\) phần tử nguyên dương \(A_1,A_2,…,A_n\). Mỗi phần tử có giá trị không vượt quá \(10^9\) và \(n≤ 10^5\). Một cặp số được gọi là cặp tương đồng với \(x\), nếu cặp số này có tổng bằng số \(x\) cho trước nào đó.
Yêu cầu: Hãy đếm xem trong dãy số \(A\) có bao nhiêu cặp số (\(A_i;A_j\)) tương đồng với \(x\) (có nghĩa là \(A_i+ A_j=x\)) với \(i<j\).
Test 1
7 6
1 2 4 3 4 5 3
4
Một xâu kí tự được gọi là xâu đối xứng nếu ta đọc xâu này từ trái sang phải hoặc từ phải sang trái là như nhau. Chẳng hạn xâu ‘abcba’ là một xâu đối xứng. Cho trước một xâu kí tự S không chứa kí tự trống (dấu cách). Hãy tìm cách cắt xâu S thành 2 xâu (2 xâu này phải khác xâu rỗng) là P và Q (với P là phần đầu, Q là phần còn lại của xâu S) sao cho khi ghép xâu P vào sau xâu Q ta được một xâu kí tự mới là xâu kí tự đối xứng.
Chú ý: Trường hợp có nhiều cách cắt thỏa mãn yêu cầu đề bài thì chọn cách cắt sao cho độ dài của xâu P là nhỏ nhất.
abaabaabaaba
3
Cho dãy số \(A\) gồm \(n\) phần tử nguyên dương \(A_1,A_2,…,A_n\). Hãy loại một phần tử bất kỳ trong dãy số và đặt \(P\) tích các số còn lại. Phân tích thừa số nguyên tố của \(P\), sau đó tính tổng các số mũ trong thừa số nguyên tố đó. Hãy tìm cách bỏ loại bỏ số nào để tổng các số mũ nhỏ nhất có thể.
Ví dụ: cho dãy số gồm \(4\) số \(1; 2; 4; 10\). có 2 cách bỏ đều cho tổng số mũ bằng \(3\) là nhỏ nhất:
Yêu cầu: Cho dãy số \(A\), hãy in ra tổng số mũ nhỏ nhất của phân tích thừa số sau khi bỏ một phần tử.
Test 1
4
1 2 4 10
3
Cho số nguyên N (\(0 ≤ N ≤ 10^{15}\)).
4
10
16
13
9
25
28
-1
19
Nhập vào từ bàn phím một số nguyên dương N (với 2 <= N <= 100000). Gọi X là tích 1.2.3...N.
Yêu cầu: Tìm số nguyên M là số lượng chữ số 0 tận cùng của số X.
5
1
X=12345= 120 nên có 1 số 0 (zero) tận cùng.
Nguồn: Bài 1 HSG lớp 9 TPĐN '2015-2016
Lan có 1 tấm bìa hình chữ nhật có các kích thước là \(x\) (cm) và \(y\) (cm), (\(x,y\) là số nguyên dương). Lan muốn cắt tấm bìa này thành những hình vuông bằng nhau có độ dài cạnh là số nguyên (đơn vị cm) sao cho tấm bìa được cắt hết không còn thừa mảnh nào. Hỏi Lan có thể cắt được ít nhất mấy hình vuông?
Yêu cầu: Viết chương trình nhập vào \(x,y\) tính và in ra \(m\) - là số lượng hình vuông cần tìm theo yêu cầu trên.
Nhập từ bàn phím 2 số nguyên dương \(x, y (x, y \le 10^9)\), mỗi số trên 1 dòng:
Test mẫu
6
8
12
Trong Học kỳ I vừa qua, Tý đạt được danh hiệu học sinh giỏi nên được bố
thưởng. Biết Tý là học sinh rất đam mê Toán và Tin học nên bố muốn thử thách Tý
bằng một trò chơi có thưởng như sau:
Bố có rất nhiều hộp hình khối lập phương giống nhau xếp thành một hàng thẳng
và được đánh số ký hiệu bằng các số tự nhiên lẻ bắt đầu từ 1; 3; 5;... Trong các hộp đó
HSG Tin học Lớp 9 NH 2018−2019
có duy nhất 1 hộp đựng phần thưởng, các hộp khác là hộp rỗng. Bố cho Tý biết hộp
đựng phần thưởng là hộp chính giữa của một đoạn dài nhất (ít nhất là 3 hộp liên tiếp)
có tổng các số ký hiệu ghi trên các hộp bằng số m.
45
9
Các hộp được đánh số ký hiệu là 1; 3; 5; 7; 9; 11; 13; 15; 17; 19; 21; 23; 25;…
Đoạn dài nhất có tổng các số ký hiệu ghi trên hộp bằng 45 là các hộp có số ký
hiệu 5; 7; 9; 11; 13. Do đó hộp cần tìm có số ký hiệu là 9.
Cho trước hai số nguyên dương m và n với \(1< m ≤ 10^{15} ; 1 < n ≤ 10^7\) . Hãy xác định có bao nhiêu cặp số nguyên dương \((p; q)\) thỏa mãn đồng thời cả 3 điều kiện: \(p < m; q < n\) và phân số \((m+p)/(n+q)\) có giá trị là một số nguyên.
5
3
1