Đề thi học sinh giỏi khu vực Bắc Bộ năm học 2011 - 2012 môn Tin học lớp 10
Vndoc.com xin gửi đến các bạn: Đề thi học sinh giỏi khu vực Bắc Bộ năm học 2011 - 2012 môn Tin học lớp 10.
Đề thi học sinh giỏi môn Tin:
HỘI CÁC TRƯỜNG THPT CHUYÊN | KÌ THI CHỌN HỌC SINH GIỎI KHU VỰC MỞ RỘNG |
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.
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.
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.