Trong toán học, người ta phát biểu bài toán dưới dạng một trò chơi: Cho n người đứng quanh vòng tròn theo chiều kim đồng hồ đánh số từ 1 đến n. Họ bắt đầu đếm từ người thứ nhất theo chiề[r]
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO
HƯNG YÊN
ĐỀ CHÍNH THỨC
(Đề thi gồm có 02 trang)
KỲ THI CHỌN HỌC SINH GIỎI THPT CẤP TỈNH
NĂM HỌC 2017 – 2018 Môn thi: TIN HỌC
Thời gian làm bài: 180 phút (không kể thời gian phát đề)
Tổng quan về các bài thi
Tên bài Tên file chương trình File dữ liệu vào File kết quả
Chú ý: Dấu * trong tên file chương trình được thay thế bởi PAS hoặc CPP tùy theo ngôn ngữ
sử dụng là PASCAL hoặc C++
Hãy lập trình giải các bài toán sau:
Bài 1: Tính tổng (7 điểm).
Cho dãy số gồm N số nguyên dương a1, a2, …, aN và giá trị K Hãy đếm các cặp phần tử
ai + aj = K (i < j)
Dữ liệu vào: cho bởi File SUMX.INP gồm hai dòng:
Dòng đầu tiên ghi giá trị N và K (2 ≤ N ≤ 105, K ≤ 105)
Dòng hai ghi giá trị của dãy a1, a2, …, aN (1 ≤ ai ≤ 105)
Kết quả: ghi ra file SUMX.OUT là số lượng cần tìm.
Ví dụ:
4 10
9 1 9 9
3
9 10
6 7 1 3 5 3 4 7 9
6
Giới hạn:
80% số test có 2 N 1000
20% test còn lại ứng với 1000 < N 100000
Bài 2: Bán hàng qua mạng (7 điểm)
Trang là một học sinh THPT trường X Là một học sinh nhưng em có sở thích và niềm đam mê trong lĩnh vực kinh doanh qua mạng Mặt hàng em bán là bút bi Qua một thời gian kinh doanh, đơn hàng ngày càng tăng, số lượng bút bi nhập về ngày càng nhiều Để có thể nhanh chóng giao hàng cho khách, Trang muốn sắp xếp những chiếc bút theo màu sắc Trang
có dãy bút bi gồm các màu xanh, tím, hồng Vì số lượng bút là rất lớn và không có nhiều thời gian nên Trang muốn nhờ các bạn học sinh giỏi bộ môn Tin học tham gia kỳ thi chọn học sinh giỏi cấp tỉnh năm 2018 sắp xếp giúp Em hãy giúp Trang sắp xếp lại dãy bút bi theo quy luật Xanh - Hồng - Tím
Dữ liệu vào: Cho bởi file SORT.INP gồm 2 dòng:
Dòng 1: Ghi số N là số lượng bút bi (1 ≤ N ≤ 106)
Dòng 2: Gồm N kí tự mô tả dãy bút bi ( X – Xanh, T – Tím, H – Hồng), các màu được phân cách nhau bởi một dấu cách
Trang 2Kết quả: Ghi ra file SORT.OUT kết quả của dãy sau khi đã được sắp xếp đúng thứ tự, các kí
tự được phân cách bởi một dấu cách
4
X T H X
X X H T
10
X H X X X H X X X X X X X X X X X X H H
Giới hạn:
60% số test có 1 N 1000
20% test còn lại ứng với 1000 < N 100000
20% test còn lại ứng với 100000 < N 1000000
Bài 3: Hoán vị (6 điểm)
Tương truyền rằng Josephus và bốn mươi chiến sĩ bị người La Mã bao vây trong một hang động Họ quyết định tự vẫn chứ không chịu bị bắt 41 người đứng thành vòng tròn và bắt đầu đếm theo một chiều vòng tròn, cứ người nào đếm đến 3 thì phải tự vẫn và người kế tiếp bắt đầu đếm từ 1 Josephus không muốn chết và đã chọn được một vị trí mà ông ta cùng với một người nữa là hai người sống sót cuối cùng theo quy luật này Hai người sống sót sau đó đã đầu hàng và gia nhập quân La Mã (Josephus sau đó chỉ nói rằng đó là sự may mắn, hay “bàn tay của Chúa” mới giúp ông và người kia sống sót)
Có rất nhiều truyền thuyết và tên gọi khác nhau về bài toán Josephus Trong toán học, người ta phát biểu bài toán dưới dạng một trò chơi: Cho n người đứng quanh vòng tròn theo chiều kim đồng hồ đánh số từ 1 đến n Họ bắt đầu đếm từ người thứ nhất theo chiều kim đồng
hồ, người nào đếm đến m (m < n) thì bị loại khỏi vòng và người kế tiếp bắt đầu đếm từ 1 Trò chơi tiếp diễn cho tới khi vòng tròn chỉ còn lại 1 người Nếu ta xếp số hiệu của n người này theo thứ tự họ bị loại khỏi vòng sẽ được một hoán vị (j1, j2, … , jn) của dãy số (1,2, … n) gọi là hoán vị Josephus(n,m)
Ví dụ với n = 7, m = 3, hoán vị Josephus sẽ là (3,6,2,7,5,1,4) Bài toán đặt ra là cho trước hai số n, m hãy xác định hoán vị Josephus(n,m)
Dữ liệu vào: Cho bởi file JOSEPHUS.INP gồm:
Hai số nguyên dương n, m ≤ 105
Kết quả: Ghi ra file JOSEPHUS.OUT gồm:
Hoán vị Josephus(n,m), mỗi số phân cách nhau bởi một dấu cách
7 3 3 6 2 7 5 1 4
12 3 3 6 9 12 4 8 1 7 2 11 5 10
Giới hạn:
60% số test có 1 N 100
20% test còn lại ứng với 100 < N 10000
20% test còn lại ứng với 10000 < N 100000
HẾT
-Xem thêm bài tiếp theo tại: