Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (115.2 KB, 2 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>SỞ GIÁO DỤC VÀ ĐÀO TẠO</b>
<b>HƯNG YÊN</b>
<b>ĐỀ CHÍNH THỨC</b>
<i>(Đề thi gồm có 02 trang)</i>
<b>KỲ THI CHỌN HỌC SINH GIỎI THPT CẤP TỈNH</b>
<b> NĂM HỌC 2017 – 2018</b>
<b>Môn thi: TIN HỌC</b>
<i><b>Thời gian làm bài: 180 phút (không kể thời gian phát đề)</b></i>
<i><b>Tổng quan về các bài thi</b></i>
<i>Tên bài</i> <i>Tên file chương trình</i> <i>File dữ liệu vào</i> <i>File kết quả</i>
<b>Bài 1</b>
<b>Bài 2 Bán hàng qua mạng SORT.*</b> <b>SORT.INP</b> <b>SORT.OUT</b>
<b>Bài 3 Hoán vị</b> <b>JOSEPHUS.*</b> <b>JOSEPHUS.INP</b> <b>JOSEPHUS.OUT</b>
<i><b>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ữ</b></i>
sử dụng là PASCAL hoặc C++
<i><b>Hãy lập trình giải các bài tốn sau:</b></i>
<b>Bài 1: Tính tổng (7 điểm).</b>
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).
<b>Dữ liệu vào: cho bởi File SUMX.INP gồm hai dòng:</b>
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).
<b>Kết quả: ghi ra file SUMX.OUT là số lượng cần tìm.</b>
<i><b>Ví dụ:</b></i>
<b>SUMX.INP</b> <b>SUMX.OUT</b>
4 10
9 1 9 9 3
9 10
6 7 1 3 5 3 4 7 9 6
<b>Giới hạn:</b>
80% số test có 2 N 1000.
20% test còn lại ứng với 1000 < N 100000.
<b>Bài 2: Bán hàng qua mạng (7 điểm)</b>
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ể
<b>Dữ liệu vào: Cho bởi file SORT.INP gồm 2 dòng:</b>
Dòng 1: Ghi số N là số lượng bút bi (1 ≤ N ≤ 106).
<b>Kế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í </b>
tự được phân cách bởi một dấu cách.
<b>SORT.INP</b> <b>SORT.OUT</b>
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
<b>Giới hạn:</b>
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>Bài 3: Hoán vị (6 điểm)</b>
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
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 tố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à
hố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).
<b>Dữ liệu vào: Cho bởi file JOSEPHUS.INP gồm:</b>
Hai số nguyên dương n, m ≤ 105<sub>.</sub>
<b>Kết quả: Ghi ra file JOSEPHUS.OUT gồm:</b>
Hoán vị Josephus(n,m), mỗi số phân cách nhau bởi một dấu cách.
<b>JOSEPHUS.INP</b> <b>JOSEPHUS.OUT</b>
7 3 3 6 2 7 5 1 4
12 3 3 6 9 12 4 8 1 7 2 11 5 10
<b>Giới hạn:</b>
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.
<b> HẾT </b>