Thông Báo:
Mọi thắc mắc xin liên hệ facebook: Bá Sơn
fb.com/sonden2000
Posted by : Unknown
Wednesday, March 15, 2017
HỘI
CÁC TRƯỜNG THPT CHUYÊN
KHU VỰC DH & ĐB BẮC BỘ
|
KÌ THI CHỌN HỌC SINH GIỎI KHU
VỰC MỞ RỘNG
NĂM
HỌC 2011- 2012
MÔN
THI: TIN HỌC LỚP 10
Ngày thi: 21 tháng 4 năm 2012
(Thời gian làm
bài 180 phút không kể thời gian
giao đề)
Đề thi
gồm 2 trang
|
TỔNG QUAN VỀ BÀI THI
Tên
bài
|
Tệp chương trình
|
Tệp dữ liệu vào
|
Tệp dữ liệu ra
|
Điểm
|
Tìm
số
|
TIMK.*
|
TIMK.INP
|
TIMK.OUT
|
6
|
Vận tải
|
TRAIN.*
|
TRAIN.INP
|
TRAIN.OUT
|
7
|
SUCULA
|
SUCULA.*
|
SUCULA.INP
|
SUCULA.OUT
|
7
|
Phần mở rộng của tệp chương trình
được đặt tùy theo ngôn ngữ lập trình được sử dụng
Bài 1: (6 điểm)
Tìm số
Cho hai số
nguyên dương N và M (2 ≤ N, M ≤ 109). Hãy tìm số nguyên dương K lớn
nhất sao cho N! chia hết cho MK.
Dữ liệu vào: Từ tệp văn
bản TIMK.INP, gồm một dòng duy nhất chứa 2 số nguyên dương N, M.
Kết quả: Đưa ra tệp văn bản TIMK.OUT, ghi số nguyên
K tìm được.
Ví dụ:
|
TIMK.INP
|
TIMK.OUT
|
||
6 6
|
2
|
Bài 2: (7 điểm) Vận tải
Ruratania mới
bước vào kinh tế thị trường và đang thiết lập những hoạt động kinh doanh mới
trong nhiều lĩnh vực, trong đó có giao thông vận tải. Công ty giao thông vận
tải TransRuratania đang bắt đầu thành lập một chuyến tàu tốc hành từ thành phố A
đến thành phố B với một vài chỗ dừng tại các ga trên tuyến đường. Các ga
được đánh số liên tiếp, ga của thành phố A được đánh số 0, ga của thành
phố B đánh số m.
Công ty làm một
thí nghiệm để nâng cao khả năng vận chuyển hành khách và từ đó nâng cao thu
nhập. Chuyến tàu có thể chứa tối đa là n
hành khách. Giá của một vé tàu là bằng số các ga giữa ga xuất phát và ga đến,
không tính ga xuất phát (bằng số hiệu ga đến – số hiệu ga xuất phát). Trước khi
chuyến tàu bắt đầu hành trình của nó từ thành phố A, các đơn đặt vé từ
tất cả các ga trên đường đi được thu lại. Một đơn đặt vé từ ga S bao gồm
tất cả các vé đặt trước từ S tới một ga đến xác định trước. Trong trường
hợp công ty không thể tiếp nhận tất cả các đơn đặt vé bởi vì khả năng chở khách
là giới hạn, thì đối với mỗi một đơn đặt vé từ các ga công ty hoặc là tiếp nhận
hoàn toàn hoặc là từ chối hoàn toàn.
Yêu cầu: Cho trước một danh sách các đơn đặt vé từ
các ga trên tuyến đường từ A đến B, hãy viết một chương trình xác
định thu nhập lớn nhất có thể của công ty TransRuratania. Thu nhập từ một đơn
đặt vé được tiếp nhận là tích của số hành khách trong đơn đặt vé với giá của vé
tàu. Thu nhập của công ty là tổng của các thu nhập từ tất cả các đơn đặt vé
được tiếp nhận.
Dữ liệu vào: Từ tệp văn bản TRAIN.INP, chứa thông
tin:
+ Dòng 1 chứa ba
số nguyên n, m, d (1 ≤ n ≤ 5000;
1 ≤ m ≤ 10; 1 ≤ d ≤ 25)
tương ứng là sức chứa hành khách của tàu, số hiệu ga của thành phố B và
số các đơn đặt vé từ tất cả các ga.
+Trong d dòng
tiếp theo, mỗi dòng mô tả một đơn đặt vé bao gồm ba số nguyên: ga xuất phát, ga
đến, số hành khách (0 ≤ ga xuất phát, ga đến ≤ m; ga xuất phát ≠
ga đến; 1 ≤
số hành khách ≤ n).
Kết quả: Đưa ra tệp văn bản TRAIN.OUT, chứa một
số là thu nhập lớn nhất có thể theo yêu cầu của bài.
Ví dụ:
|
TRAIN.INP
|
TRAIN.OUT
|
|
10 3 4
0 2 1
1 3 5
1 2 7
2 3 10
|
19
|
Bài 3: (7 điểm) SUCULA
Mỗi thanh sô cô
la có dạng thanh dài với kích thước 1 x n đơn vị, trên thanh sô cô la người ta
xẻ các rãnh chia thanh sô cô la theo kích thước 1 x 1 cho dễ bẻ. Yêu cầu xác
định: Có bao nhiêu cách bẻ thanh sô cô la theo các rãnh đã xẻ thành nhiều phần.
Ví dụ: thanh sô
cô la chiều dài n = 3, ta có ba cách bẻ: Cách 1: bẻ thành 3 thanh độ dài 1:
1,2,3; Cách 2: bẻ thành 2 thanh, một thanh độ dài 2: 1-2 và một thanh độ dài 1
là 3 (cách bẻ 1, 2-3 coi như đã tính); Cách 3 là giữ nguyên cả thanh.
Dữ liệu vào: Từ tệp văn bản SUCULA.INP, chứa
duy nhất số nguyên n là chiều dài thanh sô cô la.
Dữ liệu ra: Đưa
ra tệp văn bản SUCULA.OUT,
chứa số cách bẻ tìm được.
Ví dụ:
SUCULA.INP
|
SUCULA.OUT
|
|
||||
3
|
3
|
Giới hạn: 0 < n < 1001; Có 50% số test n < 31.
...............................HẾT...............................
HỘI CÁC TRƯỜNG THPT CHUYÊN
KHU VỰC
DH & ĐB BẮC BỘ
|
KÌ THI CHỌN HỌC SINH GIỎI KHU VỰC MỞ RỘNG
NĂM HỌC 2011- 2012
MÔN THI: TIN HỌC LỚP 10
|
HƯỚNG DẪN CHẤM
BÀI THI MÔN TIN HỌC LỚP 10
Chấm các bài
bằng test.
Sơ lược giải
thuật:
Bài 1: Tìm số
-
Phân tích số m
thành các thừa số nguyên tố, ghi nhận số lượng mỗi số.
-
Đối với mỗi thừa
số nguyên tố (k) thuộc m, đếm tổng số các số trong phạm vi n mà chia hết cho
(k) (duyệt từng số, phân tích, đếm số lượng số chia hết cho k sẽ chậm).
Bài 2: Vận tải
Vì d<=25, nên duyệt tất cả các cách (2d)
và kiểm tra (có đặt nhánh cận)
Bài 3: Sucula
F[i,j] số cách chia khi thanh có độ dài i và trong
cách chia không có thanh lớn hơn j.
F[i,j] =
F[i,j-1] + F[i-j,j].
Dùng đến cách cộng số lớn.
Hết