Nếu một trứng ong thụ tinh bởi chính con ong cái nó nở thành một con ong đực.. Tuy nhiên, nếu một trứng thụ tinh bởi một ong đực nó nở thành một con ong cái.. Như vậy một con ong đực sẽ
Trang 1SỞ GD&ĐT ĐÀ NẴNG
TRƯỜNG THPT
CHUYÊN LÊ QUÝ ĐÔN
ĐỀ THI CHỌN HỌC SINH GIỎI VÙNG DUYÊN HẢI – ĐỒNG BẰNG BẮC BỘ
NĂM HỌC 2021 - 2022 Môn: TIN HỌC 10
(Thời gian làm bài: 180 phút)
-TỔNG QUAN ĐỀ THI
trình
Dữ liệu vào Dữ liệu ra Điểm
Lập trình giải các bài toán sau:
Bài 1 (6 điểm) Tổng số ong tổ tiên
Ong là loài có thể thụ tinh đơn tính hoặc lưỡng tính Nếu một trứng ong thụ tinh bởi chính con ong cái nó nở thành một con ong đực Tuy nhiên, nếu một trứng thụ tinh bởi một ong đực nó nở thành một con ong cái Như vậy một con ong đực sẽ luôn có một mẹ, và một con ong cái sẽ có cả bố và mẹ
Ta bắt đầu tính số con ong tổ tiên của một con ong đực Xét 1 con ong đực ở thế hệ thứ n Theo quy luật trên, ta thấy:
- Trước một đời, thế hệ n-1: Con ong đực chỉ có một mẹ (1 ong cái).
- Trước hai đời, thế hệ n-2: Con ong cái đời n-1 có 2 bố mẹ, một ong bố (đực) và
một ong mẹ (cái) (2 con ong: 1 đực+ 1 cái))
- Trước ba đời, thế hệ n-3: Con ong cái thế hệ n-2 lại có hai bố mẹ, một ong bố (đực)
và một mẹ (cái), và con đực thế hệ n-2 có một mẹ (3 con ong: 1 ong đực + 2 ong
cái)
- Trước bốn đời, thế hệ n-4: Hai con cái, mỗi con có 2 cha, mẹ và mỗi con đực có
một mẹ (5 con ong: 2 ong đực 3 ong cái)
Vĩnh và Long là đôi bạn cùng lớp Sau khi tính được số con ong tổ tiên của 1 con ong đực ở 1 thế hệ N bất kỳ (với N<=25000), Vĩnh nghĩ ra 1 trò chơi như sau:
ĐỀ THI ĐỀ XUẤT
Trang 2Vĩnh sẽ nói ngẫu nhiên một con số N cho biết con ong đực đang ở thế hệ thứ mấy, còn Long trong vòng 2 giây phải tính ra tổng số con ong ở các thế hệ tổ tiên của con ong đó từ thế hệ N-1 đến thế hệ đầu tiên
Với N nhỏ (N=6 chẳng hạn), Vĩnh có thể dễ dàng kiểm tra kết quả là đúng hay sai, nhưng khi N lớn (với N=49, Long cho ra con số 20365011072) thì Vĩnh bắt đầu nghi ngờ kết quả này, N càng lớn thì sự nghi ngờ chắc chắn sẽ càng cao! Bạn hãy giúp Vĩnh giải tỏa mối nghi ngờ này nhé!
Yêu cầu: cho biết con ong đang ở thế hệ N, hãy tính ra tổng số con ong ở các thế hệ tổ tiên
của con ong đó từ thế N-1 đến thế hệ thứ nhất
Dữ liệu: vào từ file văn bản ONGTONG.INP chỉ có 1 dòng chứa số nguyên dương N cho
biết con ong đực đang ở thế hệ thứ mấy (2<=N<=25000)
Kết quả: ghi ra file văn bản ONGTONG.OUT một số nguyên duy nhất là tổng số con ong
ở các thế hệ tổ tiên của con ong đực ở thế hệ N
Ví dụ:
ONGTONG.IN
P
ONGTONG.OU
T
Ràng buộc: 50% số test ứng với 50% số điểm của bài có N <= 5000.
Bài 2 (7 điểm) Seqpart
Cho dãy L gồm các số C[1 L], cần chia dãy này thành G đoạn liên tiếp Với phần tử thứ i, ta định nghĩa chi phí của nó là tích của Ci và số lượng các số nằm cùng đoạn liên tiếp với Ci Chi phí của dãy số ứng với một cách phân hoạch là tổng các chi phí của các phần tử của G đoạn đã chia
Yêu cầu: Hãy xác định cách phân hoạch dãy số để chi phí là nhỏ nhất.
Dữ liệu vào : tệp SEQPART.INP có cấu trúc sau
- Dòng đầu tiên chứa 2 số L và G
- L dòng tiếp theo, chứa giá trị của dãy C1, C2, …, Cn
Kết quả ra: ghi vào tệp SEQPART.OUT một dòng duy nhất là chi phí nhỏ nhất.
Trang 3Ràng buộc:
- 1 ≤ L ≤ 8000
- 1 ≤ G ≤ 800
- 1 ≤ Ci ≤ 109
Ví dụ:
6 3 11 11 11 24 26 100
299
Giải thích: cách tối ưu là C[]=(11,11,11), (24,26), (100) Chi phí 11∗3 + 11∗3 + 11∗3 + 24∗2 + 26∗2 + 100∗1=299
Bài 3 (7 điểm) Biệt thự
Mr X mới mua một chiếc biệt thự lớn và hiện đại Biệt thự có thể được biểu diễn bởi một hình chữ nhật được chia làm M cột và N hàng Các cột được đánh số từ 1 tới M theo chiều từ trái qua phải (chiều hướng Tây đến Đông) Các hàng được đánh số từ 1 tới N theo chiều từ dưới lên trên (chiều hướng Nam đến Bắc) Biệt thự có M*N phòng, phòng nằm trên cột i hàng j được ký hiệu là (i, j) Hai phòng có chung cạnh sẽ có một cửa nối giữa chúng Ban đầu, tất cả các cửa nối 2 phòng theo hướng Nam-Bắc được mở, các cửa còn lại
bị đóng Đi qua một cánh cửa mở mất 1 phút Một số căn phòng được đặt công tắc kiểm soát trạng thái của các cửa Khi ấn, đè công tắc trong vòng 1 phút, mọi cánh cửa đang đóng
sẽ mở, và mọi cánh cửa đang mở sẽ đóng
Yêu cầu: Xác định thời gian ngắn nhất đi từ phòng (1, 1) tới phòng (M, N).
Dữ liệu vào : đọc từ file MANSION.INP
Dòng đầu tiên chứa 3 số nguyên M, N, K (2 <= M, N <= 100000, 1 <= K <= 200000)
K dòng sau, mỗi dòng gồm 2 số nguyên x, y (1 <= x <= M, 1 <= y <= N) mô tả phòng (x, y) có đặt công tắc K tọa độ phòng là phân biệt
Kết quả ra: ghi ra file MANSION.OUT
Trang 4In ra số phút ít nhất để đi từ phòng (1, 1) tới phòng (M, N) Nếu không đi được, in ra -1.
Ràng buộc:
Subtask 1: M, N <= 1000
Subtask 2: K <= 2000
Subtask 3: Không có ràng buộc gì thêm.
Ví dụ
3 2 1
1 2
4
3 2 1
2 1
-1
Giải thích test ví dụ đầu tiên:
-Hết -Ng ườ i ra đ đ xu t: ề ề ấ Nguy n Vinh H nh ễ ạ
S đi n tho i liên l c: ố ệ ạ ạ 0983180265