Có nhiều cách làm, có thể sắp xếp lại theo thứ tự từ điển của các kí tự trong xâu S để các kí tự giống nhau nằm liên tiếp trong xâu, từ đó tìm một kí tự có số lần xuất hiện nhiều nhất.. [r]
Trang 1UBND THÀNH PHỐ ĐÀ NẴNG
HỘI THI TIN HỌC TRẺ CẤP THÀNH PHỐ
NĂM HỌC 2014- 2015
ĐỀ CHÍNH THỨC
ĐỀ THI BẢNG B - KHỐI THCS
Thời gian: 150 phút (không kể thời gian giao đề)
=====================================================================================
TỔNG QUAN ĐỀ THI
Tên bài File chương trình File dữ liệu File kết quả Điểm
Chú ý: - Thời gian chạy chương trình trong mỗi bài không quá 2 giây.
- Đề thi này có 2 trang.
Bài 1 (3 điểm): Phân số tối giản
Nhập vào từ bàn phím hai số nguyên dương m, n (m, n 1016) Hãy viết chương trình
in ra màn hình dạng tối giản của phân số m n
Ví dụ:
m = 20
Bài 2 (2 điểm): Tìm kí tự
Nhập vào từ bàn phím một xâu kí tự S chỉ gồm các chữ cái không quá 255 kí tự Hãy viết chương trình in ra một kí tự có số lần xuất hiện nhiều nhất trong xâu S (có phân biệt kí tự hoa và kí tự thường)
Chú ý: Nếu có nhiều kí tự có cùng số lần xuất hiện nhiều nhất trong xâu S thì chỉ cần
in một kí tự trong các kí tự đó.
Ví dụ:
Bài 3 (2 điểm): Chia dãy
Có một dãy các số nguyên a1, a2, , an Ta chia dãy số này thành 2 dãy con như sau:
– Dãy con thứ nhất gồm k số đầu tiên trong dãy đã cho và tổng các phần tử của dãy con này là T1
– Dãy con thứ hai gồm các số còn lại của dãy số đã cho và tổng các phần tử của dãy con này là T2
Yêu cầu: Tìm số nguyên dương k là độ dài của dãy con thứ nhất sao cho |T1−T2| nhỏ nhất
Chú ý: Nếu có hơn một số k thỏa mãn thì ghi ra số k nhỏ nhất.
Trang 2Dữ liệu vào: File văn bản CHIADAY.INP có cấu trúc như sau:
– Dòng đầu tiên ghi một số nguyên dương n (n 10000)
– Dòng thứ hai ghi n số nguyên a1, a2, , an với |a i|≤ 105
(1 i n), mỗi số cách nhau một dấu cách
Dữ liệu ra: Ghi ra file văn bản CHIADAY.OUT một số nguyên dương k thỏa mãn yêu cầu
của đề bài
Ví dụ:
6
4 7 1 1 4 6
2
Bài 4 (3 điểm): Số hồi văn
Một số tự nhiên được gọi là một số hồi văn nếu ta đọc từ trái sang phải hoặc từ phải sang trái đều như nhau
Ví dụ: số 23432 là một số hồi văn
Yêu cầu: Cho trước 2 số tự nhiên a, b với a b 1016 Hỏi có bao nhiêu số hồi văn x thỏa mãn a x b
Dữ liệu vào: File văn bản HOIVAN.INP ghi 2 số tự nhiên a, b trên một dòng với
a ≤ b ≤1016 Mỗi số a và b cách nhau một dấu cách
Dữ liệu ra: Ghi ra file văn bản HOIVAN.OUT một số nguyên k là số các số hồi văn x thỏa
mãn a x b
Ví dụ:
Trang 3
-HẾT -UBND THÀNH
PHỐ ĐÀ NẴNG
HỘI THI TIN
HỌC TRẺ CẤP
THÀNH PHỐ
NĂM HỌC
2014- 2015
HƯỚNG DẪN CHẤM
ĐỀ THI BẢNG B - KHỐI THCS
1.
Nhập từ bàn phím (cặp số (m;n))
54321 987654321 18107/329218107 0,5
99099099099
9999999999999999 9910901/1000100010001 0,5
2.
Nhập từ bàn phím
abcdaadDedgdAA A
abcdqwerthhhBBB BBB
zxcvbnmasdfghjklz z
aabbbccccdddddeee eeee
3.
CHIADAY.IN1 (trong file)
CHIADAY.IN2 (trong file)
CHIADAY.IN3 (trong file)
CHIADAY.IN4 (trong file)
4.
123456 987654321
100 1234567891011
999 9999999999999999
Trang 4-HẾT -Chú ý: Đáp án bài 2: d thường, B hoa, z thường, e thường (sợ lỗi Auto trong word)
Trang 5CÁCH GIẢI
Bài 1 Tìm ƯCLN(m,n) = k theo thuật toán Euclid Phân số cần tìm là (m div k) / (n div k)
Bài 2 Có nhiều cách làm, có thể sắp xếp lại theo thứ tự từ điển của các kí tự trong xâu S để các kí tự
giống nhau nằm liên tiếp trong xâu, từ đó tìm một kí tự có số lần xuất hiện nhiều nhất
Bài 3
Tạo một mảng T[1 n] với T[i] = a1 + a2 + + ai
Xét hai dãy {a1, a2, ak} có tổng là T1 và dãy {ak+1, ak+2, ,an} có tổng là T2 Khi đó, ta có:
T1 = T[k] và T2 = T[n] – T[k]
|T1 – T2|= |T[n] – 2*T[k]|
Dùng vòng lặp để duyệt tất cả các biểu thức |T[n]–2T[i]| với i=1 , n− 1 Trong các biểu thức
có GTNN, ta chọn giá trị i nhỏ nhất là số cần tìm
Bài 4
Xét hai số hồi văn a và b thỏa mãn a b và có dạng sau: a=a1a2 a n , b=b1b2 b n .
Đặt i = n div 2 với n chẵn và i = n div 2 + 1 với n lẻ
Gọi x=a1a2 a i và y=b1b2 b i Theo đặc điểm của số hồi văn, ta có số các số hồi văn từ a
đến b chính là số các số tự nhiên từ x đến y.
Ví dụ 1: Số các số hồi văn từ số 1221 đến 2112 là 21 – 12 + 1 = 10, gồm các số:
1221, 1331, 1441, 1551, 1661, 1771, 1881, 1991, 2002, 2112
Ví dụ 2: Số các số hồi văn từ số 323 đến 404 là 40 – 32 + 1 = 9, gồm các số:
323 333, 343, 353, 363, 373, 383, 393, 404
Các bước giải:
– Tìm số hồi văn x nhỏ nhất thỏa mãn x a và số hồi văn y lớn nhất thỏa mãn y b (với a và
b là 2 số đã cho ở file HOIVAN.INP) (cách tìm phải hợp lí).
– Trong khoảng từ x đến y, ta chia thành từng lớp các số hồi văn có cùng số các chữ số và
tính có bao nhiêu số hồi văn trong cùng một lớp đó
– Cộng các kết quả trên với nhau ta được giá trị cần tìm