Bài 1: Dãy số(6 điểm) Bờm rất thích những tính chất thú vị của các dãy số. Bố cậu biết vậy nên đã đố cậu giải được bài toán sau: Cho 1 dãy số Đặt X= (an+1 – an)2. Hỏi rằng chữ số cuối cùng của số X là số nào? Bờm đang cố gắng suy nghĩ để tìm ra cách giải. Bạn là một lập trình viên giỏi nên bạn hãy giúp cậu ấy giải bài toán trên. Dữ liệu vào: DAYSO.INP Dòng đầu ghi số K (KZ, 1 ≤ K ≤ 1000). K dòng tiếp theo, mỗi dòng có 1 giá trị duy nhất là số nguyên dương n (với n≤1015). Dữ liệu ra: DAYSO.OUT Gồm k dòng, mỗi dòng ghi một chữ số duy nhất tìm được ứng với dòng có giá trị n trong file dữ liệu vào. Ví dụ: DAYSO.INP DAYSO.OUT 2 1 4 4 5 Ghi chú: Thời gian giới hạn chạy mỗi test là 1 giây. 60% số test có n ≤10000. Bài 1: Búng chim (7 điểm) Bạn biết gì về trò chơi “Made in Việt Nam” Flappy Bird của tác giả Nguyễn Hà Đông? Hôm nay, chúng ta làm quen với phiên bản 2 của trò chơi này nhé. Cho m hàng, mỗi hàng có n trụ đồng, khoảng cách giữa các trụ coi như không đáng kể. Trụ ở hàng i cột j có độ cao hij. Chú chim Flappy xuất phát ở mặt đất (độ cao bằng 0) và dự trữ W đơn vị năng lượng, mỗi lần nhảy từ ví trí này đến vị trí khác chú bị tiêu hao một năng lượng đúng bằng độ cao của vị trí nhảy tới. Nhiệm vụ của chú chim ở phiên bản này là phải nhảy qua n trụ ở n cột khác nhau, mỗi lần chú chỉ có thể nhảy tới bất kỳ một trụ nào đó của cột kế tiếp. Bờm và các bạn trong lớp mới tham gia và rất hứng thú với trò chơi này. Để chứng tỏ khả năng không “yếu kém”, Bờm muốn chú chim Flappy của mình nhảy từ trụ này tới trụ khác sao cho độ cao của các trụ không giảm và tổng độ cao các trụ là lớn nhất có thể. Bạn hãy giúp Bờm chỉ ra hành trình của chú chim Fllapy. Dữ liệu vào: FBIRD.INP Dòng đầu chứa ba số n, m, W M dòng sau, dòng thứ I+1 (i=1..n), ghi n số hi1, hi2,…, hin. Dữ liệu ra: FBIRD.OUT Nếu không tồn tại đáp số ghi ra số 1, ngược lại bạn ghi một số nguyên là tổng độ cao lớn nhất của các trụ chú chim Flappy nhảy qua. Ví dụ: FBIRD.INP FBIRD.OUT FBIRD.INP FBIRD.OUT 2 3 10 2 7 6 4 3 5 10 {Chú thích: (1,1) (2,2) (2,3)} 2 3 7 7 1 3 2 5 6 1 Các giới hạn: 1≤W≤100 000 1≤M, N≤ 20 1≤Hij≤ 1 000 30% số test đầu có 1≤M, N≤ 10 30% số test tiếp theo có 1≤M, N≤ 15 40% số test cuối có 1≤M, N≤ 20 Bài 3: (7 điểm) Mua linh vật Vua Hùng tổ chức một cuộc thi tài để kén Phò Mã cho công chúa Mị Nương. Các chàng trai tham dự cuộc thi sẽ phải mang đầy đủ sính lễ đến theo yêu cầu của nhà Vua. Sính lễ bắt buộc phải là n loại linh vật của n ngôi làng trong đất nước. Chàng trai thông minh nhất là người mang đầy đủ sính lễ đến với số tiền bỏ ra là ít nhất và sẽ được kết duyên cùng công chúa Mị Nương. Vào thời đó, cả nước có tất cả 2n ngôi làng trong đó n ngôi làng nằm bên trái của con sông X, và n ngôi làng còn lại nằm ở bên phải của sông X. Ở hai bên sông, các ngôi làng được đánh số lần lượt từ 1 đến n theo thứ tự từ ngôi làng ở đầu sông đến ngôi làng ở cuối sông. Một ngôi làng chỉ có một loại linh vật. Giả sử không giới hạn số lượng linh vật của từng loại linh vật. Để có được 1 loại linh vật thì các chàng trai phải mua và trả một số tiền bằng giá trị 1 linh vật của loại linh vật đó. Mỗi chàng trai được chọn nơi xuất phát là ngôi làng có số thứ tự 1 ở một trong hai bờ sông và từ đó đi tiếp tới các ngôi làng khác. Tới ngôi làng nào thì sẽ mua 1 linh vật của ngôi làng đó. Mua xong linh vật ở ngôi làng thứ i rồi thì phải di chuyển tới ngôi làng thứ i+1 ở một trong 2 bờ sông. Ngoài số tiền phải bỏ ra để mua linh vật, người mua phải trả thêm chi phí di chuyển từ ngôi làng này tới ngôi làng khác. Chi phí di chuyển được tính như sau: Giữa hai ngôi làng liên tiếp trên cùng một bờ sông coi chi phí bằng 0. Giữa hai ngôi làng ở hai bên bờ sông khác nhau thì chi phí là một số nguyên dương M (M không phụ thuộc vào số thứ tự của 2 ngôi làng). Các chàng trai sau khi mua đủ sính lễ theo yêu cầu thì sẽ mang sính lễ đó dâng lên nhà Vua tại địa điểm đã được quy định trước là ngôi làng thứ n của bờ sông bên phải. Sơn Tinh đang đau đầu suy nghĩ giải bài toán khó này. Bạn là một lập trình viên đang tham dự kỳ thi Olympic Tin học vùng đồng bằng Sông Hồng và duyên hải Bắc Bộ. Bạn hãy giúp Sơn Tinh giải bài toán của Vua Hùng nhé. Cho N, M và giá trị của các loại linh vật ở hai bên bờ sông. Yêu cầu: Hãy đưa ra số tiền ít nhất phải trả để có thể mua được N loại linh vật theo yêu cầu của nhà Vua? Dữ liệu vào: LINHVAT.INP Gồm 3 dòng: Dòng đầu tiên ghi 2 số nguyên N, M (1≤ N ≤ 105, 1≤ M≤ 109) Dòng thứ 2 ghi N số nguyên: a1, a2, …., an theo thứ tự là giá trị N loại linh vật của các ngôi làng từ 1 đến n ở bờ sông bên trái. Dòng thứ 3 ghi N số nguyên: b1, b2, …., bn theo thứ tự là giá trị N loại linh vật của các ngôi làng từ 1 đến n ở bờ sông bên phải. (0 < ai, bi ≤ 109; ai, bi Z với mọi i1..n) Các số trên cùng 1 dòng cách nhau ít nhất một dấu cách. Dữ liệu ra: LINHVAT.OUT Gồm 1 dòng duy nhất là số tiền ít nhất phải trả để mua N loại linh vật theo yêu cầu của nhà Vua. Ví dụ: LINHVAT.INP LINHVAT.OUT 5 6 4 9 18 7 5 15 10 3 24 1 42 Ghi chú: Thời gian giới hạn chạy mỗi test là 1 giây. 30% số test có n≤1000. 30% số test có n≤5000 40% số test có n≤100000 Giải thích ví dụ: đi từ ngôi làng 1 ở bờ bên trái ngôi làng thứ 2 ở bờ trái ngôi làng thứ 3 ở bờ phải ngôi làng thứ 4 ở bờ trái ngôi làng thứ 5 của bờ phải. Tổng chi phí = 4 + 9 + 6 (do đổi bờ) + 3 + 6 (do đổi bờ) + 7 + 6(do đổi bờ) +1 = 42 HẾT
Trang 1SỞ GD&ĐT HÀ NAM
Trường THPT chuyên Biên Hòa
Người ra đề: Lê Thị Hải Hằng
Nguyễn Thị Hồng Nhớ
ĐỀ THI HỌC SINH GIỎI CÁC TRƯỜNG CHUYÊN KHU VỰC DUYÊN HẢI VÀ ĐỒNG BẰNG BẮC BỘ
NĂM 2014 Môn: Tin học lớp 10
Thời gian làm bài: 180 phút
-Tổng quan về đề thi:
Bài Tên file bài làm Tên file dữ liệu Tên file kết quả Thời gian/test
Phần đuôi tên file bài làm * có thể là PAS hoặc CPP.
Bài 1: Dãy số(6 điểm)
Bờm rất thích những tính chất thú vị của các dãy số Bố cậu biết vậy nên đã
đố cậu giải được bài toán sau:
Cho 1 dãy số
Đặt X= (an+1 – an)2 Hỏi rằng chữ số cuối cùng của số X là số nào?
Bờm đang cố gắng suy nghĩ để tìm ra cách giải Bạn là một lập trình viên giỏi nên bạn hãy giúp cậu ấy giải bài toán trên
Dữ liệu vào: DAYSO.INP
- Dòng đầu ghi số K (KZ, 1 ≤ K ≤ 1000)
- K dòng tiếp theo, mỗi dòng có 1 giá trị duy nhất là số nguyên dương n (với n≤1015)
Dữ liệu ra: DAYSO.OUT
Gồm k dòng, mỗi dòng ghi một chữ số duy nhất tìm được ứng với dòng có giá trị n trong file dữ liệu vào
Trang 2Ví dụ:
2 1 4
4 5
Ghi chú: Thời gian giới hạn chạy mỗi test là 1 giây.
60% số test có n ≤10000
Bài 1: Búng chim (7 điểm)
Bạn biết gì về trò chơi “Made in Việt Nam” Flappy Bird của tác giả Nguyễn Hà Đông? Hôm nay, chúng ta làm quen với phiên bản 2 của trò chơi này nhé
Cho m hàng, mỗi hàng có n trụ đồng, khoảng cách giữa các trụ coi như không đáng
kể Trụ ở hàng i cột j có độ cao hij
Chú chim Flappy xuất phát ở mặt đất (độ cao bằng 0) và dự trữ W đơn vị năng lượng, mỗi lần nhảy từ ví trí này đến vị trí khác chú bị tiêu hao một năng lượng đúng bằng độ cao của vị trí nhảy tới Nhiệm vụ của chú chim ở phiên bản này là phải nhảy qua n trụ ở n cột khác nhau, mỗi lần chú chỉ có thể nhảy tới bất kỳ một trụ nào đó của cột kế tiếp
Bờm và các bạn trong lớp mới tham gia và rất hứng thú với trò chơi này Để chứng
tỏ khả năng không “yếu kém”, Bờm muốn chú chim Flappy của mình nhảy từ trụ này tới trụ khác sao cho độ cao của các trụ không giảm và tổng độ cao các trụ là lớn nhất có thể
Bạn hãy giúp Bờm chỉ ra hành trình của chú chim Fllapy
Dữ liệu vào: FBIRD.INP
- Dòng đầu chứa ba số n, m, W
- M dòng sau, dòng thứ I+1 (i=1 n), ghi n số hi1, hi2,…, hin
Dữ liệu ra: FBIRD.OUT
Nếu không tồn tại đáp số ghi ra số -1, ngược lại bạn ghi một số nguyên là tổng độ cao lớn nhất của các trụ chú chim Flappy nhảy qua
Trang 3Ví dụ:
2 3 10
2 7 6
4 3 5
10
{Chú thích:
(1,1) (2,2) (2,3)}
2 3 7
7 1 3
2 5 6
-1
Các giới hạn:
- 1≤W≤100 000
- 1≤M, N≤ 20
- 1≤Hij≤ 1 000
- 30% số test đầu có 1≤M, N≤ 10
- 30% số test tiếp theo có 1≤M, N≤ 15
- 40% số test cuối có 1≤M, N≤ 20
Bài 3: (7 điểm) Mua linh vật
Vua Hùng tổ chức một cuộc thi tài để kén Phò Mã cho công chúa Mị Nương Các chàng trai tham dự cuộc thi sẽ phải mang đầy đủ sính lễ đến theo yêu cầu của nhà Vua Sính lễ bắt buộc phải là n loại linh vật của n ngôi làng trong đất nước Chàng trai thông minh nhất là người mang đầy đủ sính lễ đến với số tiền bỏ ra là ít nhất và sẽ được kết duyên cùng công chúa Mị Nương
Vào thời đó, cả nước có tất cả 2n ngôi làng trong đó n ngôi làng nằm bên trái của con sông X, và n ngôi làng còn lại nằm ở bên phải của sông X Ở hai bên sông, các ngôi làng được đánh số lần lượt từ 1 đến n theo thứ tự từ ngôi làng ở đầu sông đến ngôi làng ở cuối sông Một ngôi làng chỉ có một loại linh vật Giả sử không giới hạn số lượng linh vật của từng loại linh vật Để có được 1 loại linh vật thì các chàng trai phải mua và trả một số tiền bằng giá trị 1 linh vật của loại linh vật đó
Mỗi chàng trai được chọn nơi xuất phát là ngôi làng có số thứ tự 1 ở một trong hai bờ sông và từ đó đi tiếp tới các ngôi làng khác Tới ngôi làng nào thì sẽ mua 1 linh vật của ngôi làng đó Mua xong linh vật ở ngôi làng thứ i rồi thì phải di chuyển tới ngôi làng thứ i+1 ở một trong 2 bờ sông Ngoài số tiền phải bỏ ra để mua linh vật, người mua phải trả thêm chi phí di chuyển từ ngôi làng này tới ngôi làng khác
Trang 4Chi phí di chuyển được tính như sau: Giữa hai ngôi làng liên tiếp trên cùng một bờ sông coi chi phí bằng 0 Giữa hai ngôi làng ở hai bên bờ sông khác nhau thì chi phí là một số nguyên dương M (M không phụ thuộc vào số thứ tự của 2 ngôi làng)
Các chàng trai sau khi mua đủ sính lễ theo yêu cầu thì sẽ mang sính lễ đó dâng lên nhà Vua tại địa điểm đã được quy định trước là ngôi làng thứ n của bờ sông bên phải Sơn Tinh đang đau đầu suy nghĩ giải bài toán khó này Bạn là một lập trình viên đang tham dự kỳ thi Olympic Tin học vùng đồng bằng Sông Hồng và duyên hải Bắc Bộ Bạn hãy giúp Sơn Tinh giải bài toán của Vua Hùng nhé
Cho N, M và giá trị của các loại linh vật ở hai bên bờ sông
Yêu cầu: Hãy đưa ra số tiền ít nhất phải trả để có thể mua được N loại linh vật theo
yêu cầu của nhà Vua?
Dữ liệu vào: LINHVAT.INP
Gồm 3 dòng:
Dòng đầu tiên ghi 2 số nguyên N, M (1≤ N ≤ 105, 1≤ M≤ 109)
Dòng thứ 2 ghi N số nguyên: a1, a2, …., an theo thứ tự là giá trị N loại linh vật của các ngôi làng từ 1 đến n ở bờ sông bên trái
Dòng thứ 3 ghi N số nguyên: b1, b2, …., bn theo thứ tự là giá trị N loại linh vật của các ngôi làng từ 1 đến n ở bờ sông bên phải
(0 < ai, bi ≤ 109; ai, bi Z với mọi i[1 n])
Các số trên cùng 1 dòng cách nhau ít nhất một dấu cách
Dữ liệu ra: LINHVAT.OUT
Gồm 1 dòng duy nhất là số tiền ít nhất phải trả để mua N loại linh vật theo yêu cầu của nhà Vua
Ví dụ:
5 6
4 9 18 7 5
15 10 3 24 1
42
Trang 5Ghi chú: Thời gian giới hạn chạy mỗi test là 1 giây.
30% số test có n≤1000
30% số test có n≤5000
40% số test có n≤100000
Giải thích ví dụ: đi từ ngôi làng 1 ở bờ bên trái ngôi làng thứ 2 ở bờ trái ngôi
làng thứ 3 ở bờ phải ngôi làng thứ 4 ở bờ trái ngôi làng thứ 5 của bờ phải Tổng chi phí = 4 + 9 + 6 (do đổi bờ) + 3 + 6 (do đổi bờ) + 7 + 6(do đổi bờ) +1 = 42
HẾT