Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
2,59 MB
Nội dung
ĐỀ KIỂM TRA NĂNG KHIẾU TIN HỌC VOI Training Camp Lớp 10 Tin Ngày 06 tháng 12 năm 2020 Thời gian 180 phút (Đề thi có trang) Tổng quan thi đề TT Tên Số đư Trừ chia Nguyên tố Di chuyển Tổng chữ số File Chương trình REMANDER.* SUBORDIV.* COPRIME.* MOVE.* SUMDG.* File liệu REMANDER.INP SUBORDIV.INP COPRIME.INP MOVE.INP SUDG.INP File kết REMANDER.OUT SUBORDIV.OUT COPRIME.OUT MOE.OUT SUMDG.OUT Điểm 2,0 2,0 2,0 2,0 2,0 Phần mở rộng File chương trình PAS CPP tùy theo ngơn ngữ lập trình sử dụng Pascal C++ Cấu hình dịch: G++ 4.9.2: -std=c++11 -O2 -s -static -Wl, stack,66060288 -lm -x c++ FPC 3.0.4: -O2 -XS -Sg -Cs66060288 Viết chương trình giải tốn sau: Bài Số dư Cho hai số nguyên 𝑥, 𝑃 (𝑃 > 1) Ta biết tồn cách phân tích: 𝑥 =𝑘×𝑃+𝑟 𝑘 ∈ ℤ , 𝑟 ∈ {0,1,2, … 𝑃 − 1} Số 𝑘 gọi thương 𝑥 chia cho P, 𝑟 phần dư 𝑥 chia cho P Yêu cầu: Cho trước dãy số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 hai số nguyên dương 𝑃, 𝑟 Hãy đếm xem dãy cho có số nguyên mà phần dư chia cho 𝑃 𝑟? Dữ liệu: Vào từ file văn REMAINDER.INP • Dịng chứa ba số nguyên dương 𝑛, 𝑃, 𝑟 (𝑛 ≤ 106 , ≤ 𝑟 < 𝑃 ≤ 100) • Dịng thứ hai chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 109 ) Kết quả: Ghi file văn REMAINDER.OUT số nguyên số lượng phần tử mảng có phần dư chia cho 𝑃 𝑟 ? Ví dụ: REMAINDER.INP 1 REMAINDER.OUT Bài Trừ chia Cho số nguyên dương 𝑛 Tại bước bạn biến đổi 𝑛 theo hai cách: • Chia số 𝑛 cho ước dương thực (Ước dương thực 𝑛 số nguyên dương 𝑑 < 𝑛 cho 𝑛 chia hết cho 𝑑) • Trừ 𝑛 đơn vị Yêu cầu: Hãy xác định số bước biến đổi để biến đổi 𝑛 thành số Dữ liệu: Vào từ file văn SUBORDIV.INP • Dịng 1: Chứa số ngun dương 𝑇 (1 ≤ 𝑇 ≤ 100) số liệu • Dịng 𝑇 + 1: Mỗi dịng chứa số nguyên dương 𝑛 (1 ≤ 𝑛 ≤ 109 ) Kết quả: Ghi file văn SUBORDIV.OUT Gồm 𝑇 dòng, dòng thứ 𝑖 chứa số nguyên số phép biến đổi cần thực để đưa số nguyên dương 𝑛 dòng 𝑖 + file liệu trở thành số (𝑖 = 1,2, … , 𝑇) Trang: Ví dụ: SUBORDIV.INP 6 SUBORDIV.OUT 2 Giải thích: 2→1 3→2→1 4→2→1 6→2→1 9→3→2→1 Bài Nguyên tố Cho ba số nguyên tố 𝑝, 𝑞, 𝑟 hai số nguyên dương 𝐴, 𝐵 Hãy đếm xem có số nguyên 𝑥 thỏa mãn hai điều kiện đây: 𝐴 ≤ 𝑥 ≤ 𝐵 gcd(𝑥, 𝑦) = (ở gcd(𝑥, 𝑦) hàm tìm ước chung lớn hai số nguyên dương 𝑥, 𝑦) với số ngun dương 𝑦 mà phân tích thành tích thừa số ngun tố có dạng 𝑦 = 𝑝𝑢 × 𝑞 𝑣 × 𝑟 𝑤 (ở 𝑢, 𝑣, 𝑤 số nguyên không âm) Dữ liệu: Vào từ file văn COPRIME.INP • Dịng thứ chứa ba số nguyên tố 𝑝, 𝑞, 𝑟 (1 < 𝑝 < 𝑞 < 𝑟 < 106 ) • Dịng thứ hai chứa hai số nguyên dương A, B (1 ≤ 𝐴 ≤ 𝐵 ≤ 1018 ) Kết quả: Ghi file văn COPRIME.OUT số nguyên số lượng số tìm Ràng buộc: Có 50% số test ứng với điểm có ≤ 𝐴 ≤ 𝐵 ≤ 106 Ví dụ: COPRIME.INP 10 20 COPRIME.OUT Bài Di chuyển Xét việc di chuyển từ điểm nguyên tới điểm nguyên khác đường thẳng theo quy tắc sau: • Bắt đầu từ điểm có toạ độ ngun, • Từ điểm tới điểm với bước không âm, độ dài bước trước khác 1 đơn vị Yêu cầu: Cho số nguyên x y (0 ≤ x ≤ y ≤ 231) Hãy xác định số bước tối thiểu từ x tới y với với bước ban đầu bước cuối có độ dài 45 46 47 48 49 50 Ví dụ, với x = 45, y = 50, số bước chuyển tối thiểu 4: 45 46 48 49 50 Dữ liệu: Vào từ file văn MOVE.INP Trang: Gồm nhiều dịng, dịng mơ tả liệu cứa hai số nguyên 𝑥, 𝑦 cách dấu cách Kết quả: Ghi file văn MOVE.OUT Mỗi dòng ghi số nguyên kết liệu tương ứng liệu vào Ví dụ: MOVE.INP 45 50 MOVE.OUT Bài Tổng chữ số Cho số nguyên dương 𝑥 Hàm 𝑓(𝑥) xây dựng cách sau: Trước tiên lấy tổng chữ số 𝑥 số nguyên 𝑥1 ; 𝑥1 > lấy tổng chữ số 𝑥1 số nguyên 𝑥2 ; Quá trình tiếp tục đến thu số nhỏ Ví dụ 𝑥 = 197 𝑥1 = + + = 17; 𝑥2 = + = ta 𝑓 (𝑥 ) = Yêu cầu: Cho hai số nguyên dương 𝐿, 𝑅 tính tổng 𝑓 (𝐿) + 𝑓(𝐿 + 1) + ⋯ + 𝑓(𝑅) Dữ liệu: Vào từ file văn SUMDG.INP • Dịng chứa số ngun dương 𝑄 (𝑄 ≤ 100) số lượng truy vấn • 𝑄 dòng tiếp theo, dòng thứ 𝑖 chứa hai số nguyên dương 𝐿𝑖 , 𝑅𝑖 (1 ≤ 𝐿𝑖 ≤ 𝑅𝑖 ≤ 260 ) thể truy vấn Kết quả: Ghi file văn SUMDG.OUT gồm 𝑄 dòng, dòng thứ 𝑖 in số nguyên tổng 𝑓 (𝐿𝑖 ) + ⋯ + 𝑓(𝑅𝑖 ) (câu trả lời cho truy vấn thứ 𝑖) Subtasks: • Subtask 1: ≤ 𝐿𝑖 ≤ 𝑅𝑖 ≤ [0,5 điểm] • Subtask 2: 𝑅𝑖 − 𝐿𝑖 ≤ 1000 [0,5 điểm] • Subtask 3: Khơng có ràng buộc bổ sung [1,0 điểm] Ví dụ: SUMDG.INP 13 44 45 SUMDG.OUT 19 17 -HẾT Thí sinh khơng hỏi linh tinh Giảm thị khơng giải thích lằng nhằng! Trang: VOI Training Camp ĐỀ KIỂM TRA NĂNG KHIẾU LẦN TIN HỌC Lớp 10 Chuyên Tin Ngày 09 tháng 11 năm 2020 Thời gian 180 phút (Đề thi có trang) Tổng quan thi đề TT Tên file chương trình Tên Tên file liệu Tên file kết Hình chữ nhật Giải mã Tổng số hình chữ nhật rectangle.cpp rectangle.inp rectangle.out xeda.cpp xeda.inp xeda.out smax.cpp smax.inp smax.out Cái mũi Pinochio Dãy dài tổng không pinochio.cpp pinochio.inp pinochio.out seqmaxm.cpp seqmaxm.inp seqmaxm.out Time Điểm 1s 1s 1s 1s 1s 2 2 Viết chương trình giải tốn sau: Bài Hình chữ nhật Trang thích số tự nhiên đơn giản, không lằng nhằng dấu Trong chơi, Trang vẽ hình chữ nhật kích thước m x n, sau chia hình chữ nhật thành m.n vuông Mỗi ô vuông điền vào số theo quy luật mà Trang yêu cầu Nhiệm vụ lại Bạn điền số vào vng cho nhanh quy luật mà Trang đưa Bạn chiến thắng Hãy nhờ máy tính điền giúp cho nhanh File Input: rectangle.inp có dòng chứa giá trị m, n (0 a >> int k = n / int r = n % int x, y; switch (k % n; a; a; 4) { Trang: case 0: x = 0, y = break; case 1: x = r, y = break; case 2: x = a, y = break; case 3: x = a - r, break; } cout n >> x; int gmax = 0, res for (int i = 1; i int u; cin >> u; if (u > gmax) gmax = u, else if (u == ++res; } cout k; int m = k / 5, r = k % 5; Trang: cout > a >> b >> c >> d >> k; int res = b + d; if (res % k) { int r = res % k; int rmax = (b - a) + (d - c); if (r > rmax) res = 0; else res -= r; } cout