Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Tổng quan đề thi

Tên bài File mã nguồn File dữ liệu File kết quả Điểm
Lát gạch YARD.* YARD.INP YARD.OUT 7
Chụp ảnh PHOTO.* PHOTO.INP PHOTO.OUT 7
Đầu bếp CHEF.* CHEF.INP CHEF.OUT 6

Trang 1 trên 7
Bài 1. Lát gạch (7 điểm)
Flie dữ liệu: YARD.INP
File kết quả: YARD.OUT
Giới hạn thời gian: 1 giây
Giới hạn bộ nhớ: 256 MB

Phú ông vừa mới xây nhà mới trên một khu đất rất rộng. Phía trước nhà là một khu vườn lớn với nhiều
loại hoa cỏ. Để thuận tiện cho việc thăm vườn hoa mỗi ngày, đặc biệt là vào những ngày mưa, phú ông
quyết định sẽ lát gạch cho con đường từ nhà đến khu vườn.
Đường đi này có độ dài m mét và độ rộng n mét, có thể coi như một bảng kích thước m × n. Vì phú
ông không thiếu tiền, nên ông có thể mua bất kỳ viên gạch có kích thước a × b nào mà ông muốn. Tuy
nhiên, để đảm bảo tính thẩm mỹ và chắc chắn khi sử dụng, gạch phải được lát trên cả con đường, sao
cho không còn vị trí trống nào.
Yêu cầu: Đếm số cách lát gạch cho con đường trong trường hợp này. Hai cách lát gạch được coi là khác
nhau nếu số lượng hoặc cách sắp xếp các viên gạch ở hai cách khác nhau. Lưu ý rằng hai cách là đối
xứng hoặc xoay của nhau được coi là khác nhau.

Dữ liệu
Gồm một dòng chứa hai số nguyên m, n cách nhau bởi khoảng trắng (1 ≤ m ≤ 105 , 1 ≤ n ≤ 5) — độ
dài và độ rộng của đường đi.

Kết quả
In ra một số nguyên duy nhất là số cách lát gạch thỏa mãn. Vì kết quả có thể rất lớn, bạn chỉ cần in ra
phần dư khi chia cho 1 000 000 007 (109 + 7).

Chấm điểm

• 25% số test đầu ứng với 25% số điểm của bài có n = 1;

• 25% số test tiếp theo ứng với 25% số điểm của bài có n = 2;

• 20% số test tiếp theo ứng với 20% số điểm của bài có n = 3;

• 15% số test tiếp theo ứng với 15% số điểm của bài có n = 4;

• 15% số test còn lại ứng với 15% số điểm của bài có n = 5.

Ví dụ
YARD.INP YARD.OUT
2 1 2
6 2 2864
3 3 322

Giải thích
Ở ví dụ thứ nhất, có 2 cách lát như sau:

Trang 2 trên 7
Ở ví dụ thứ hai, một trong các cách lát thỏa mãn là:

Ở ví dụ thứ ba, một trong các cách lát thỏa mãn là:

Trang 3 trên 7
Bài 2. Chụp ảnh (7 điểm)
Flie dữ liệu: PHOTO.INP
File kết quả: PHOTO.OUT
Giới hạn thời gian: 1 giây
Giới hạn bộ nhớ: 256 MB

Thầy giáo đang lên kế hoạch chụp bức ảnh toàn bộ học sinh tham dự kỳ thi học sinh giỏi khu vực Duyên
hải và Đồng bằng Bắc bộ và đã nhờ sự giúp đỡ của các bạn.
Có k học sinh, được đánh số từ 1 đến k. Thầy giáo đã quên chiều cao của các học sinh, nhưng thầy nhớ
rằng không có hai học sinh nào có cùng chiều cao.
Thầy giáo đã đã chuẩn bị một dãy a1 , a2 , . . . , an đại diện cho thứ tự của các học sinh trong ảnh nhóm,
từ trái sang phải. Một học sinh có thể xuất hiện nhiều lần trong a. Bạn không biết rằng bức ảnh nhóm
sẽ được chụp như thế nào, nhưng bạn cũng không muốn giả định là thầy giáo của mình đã mắc lỗi.
Thầy sẽ hỏi q truy vấn dạng “x y”, tương ứng cho câu hỏi “Cho dãy học sinh ax , ax+1 , . . . , ay , chiều cao
của họ có thể tạo thành một dãy đẹp hay không?”. Cụ thể hơn, đặt chiều cao của học sinh thứ i là hi .
Có tồn tại dãy chiều cao hợp lệ h1 , h2 , . . . , hk sao cho hax > hax+1 < hax+2 > hax+3 < . . . hay không?
Lưu ý rằng mỗi truy vấn trong q truy vấn sẽ độc lập với nhau: tức là việc chọn dãy chiều cao cho truy
vấn thứ i không ảnh hưởng đến kết quả của truy vấn j trong trường hợp i khác j.
Yêu cầu: Hãy trả lời q truy vấn trên giúp thầy giáo.

Dữ liệu

• Dòng đầu tiên chứa ba số nguyên n, k và q (2 ≤ k ≤ n ≤ 3000, 1 ≤ q ≤ 106 ) — lần lượt là số học
sinh trong ảnh, số lượng học sinh tham dự kì thi và số truy vấn.

• Dòng thứ hai chứa n số nguyên a1 , a2 , . . . , an (1 ≤ ai ≤ k) — thứ tự của các học sinh trong bức
ảnh.

• q dòng tiếp theo mỗi dòng chứa một truy vấn dưới dạng hai số nguyên x và y (1 ≤ x < y ≤ n).

Hai số nguyên liên tiếp trên một dòng cách nhau bởi khoảng trắng.

Kết quả
In ra q dòng. Ở dòng i, in ra kết quả cho truy vấn thứ i. In ra “YES” nếu có thể tạo thành dãy đẹp, và
in ra “NO” trong trường hợp ngược lại.

Chấm điểm

• 20% số test đầu ứng với 20% số điểm của bài có k = 2;

• 30% số test tiếp theo ứng với 30% số điểm của bài có n ≤ 500 và k ≤ min(n, 5);

• 30% số test tiếp theo ứng với 30% số điểm của bài có q ≤ 3000;

• 20% số test còn lại ứng với 20% số điểm của bài không có ràng buộc gì thêm.

Trang 4 trên 7
Ví dụ
PHOTO.INP PHOTO.OUT
6 3 3 NO
1 1 2 3 1 2 YES
1 2 NO
2 5
2 6

Giải thích
Đối với câu hỏi đầu tiên, ta sẽ không bao giờ có được h1 > h1 nên câu trả lời là “NO”.
Đối với câu hỏi thứ hai, một cách để h1 > h2 < h3 > h1 là h1 = 160cm, h2 = 140cm, h3 = 180cm.
Đối với câu hỏi cuối cùng, ta không thể có đồng thời h1 > h2 và h1 < h2 .

Trang 5 trên 7
Bài 3. Đầu bếp (6 điểm)
Flie dữ liệu: CHEF.INP
File kết quả: CHEF.OUT
Giới hạn thời gian: 1 giây
Giới hạn bộ nhớ: 256 MB

Phát nổi tiếng với tài năng trong lập trình thi đấu, nhưng ít người biết rằng anh ta cũng là một đầu bếp
xuất sắc có thể dễ dàng chuẩn bị nhiều món ăn khác nhau. Vì vậy, anh ta được mời đến làm đầu bếp
cho một cuộc thi lập trình.
Hiện có n thí sinh đứng thành một hàng, với thí sinh thứ i phải ăn ít nhất ai miếng thịt để cảm thấy
vừa đủ và ăn bi miếng thịt để no bụng.
Mặc dù Phát quyết tâm khiến tất cả mọi người đều no, nhưng ban tổ chức lại muốn tiết kiệm đồ ăn. Vì
thế, Phát được giao nhiệm vụ phục vụ steak sao cho thí sinh nào cũng cảm thấy vừa đủ hoặc no bụng,
và tại bất kỳ thời điểm nào, số người no bụng không lớn hơn số người cảm thấy vừa đủ. Lưu ý rằng Phát
phải phục vụ các thí sinh lần lượt theo thứ tự trong hàng.
Yêu cầu: Giả sử rằng Phát không thể chuẩn bị nhiều hơn k miếng thịt, số người mà anh ta có thể làm
no bụng tối đa là bao nhiêu?

Dữ liệu

• Dòng đầu tiên chứa hai số nguyên n và k (1 ≤ n ≤ 105 , 1 ≤ k ≤ 109 ) — lần lượt là số lượng người
trong hàng đợi và số lượng miếng thịt tối đa mà Phát có thể chuẩn bị.

• n dòng tiếp theo chứa hai số nguyên ai và bi (1 ≤ ai < bi ≤ 109 ) — lần lượt là số miếng thịt cần
cho thí sinh thứ i để vừa đủ và no bụng.

Hai số nguyên liên tiếp trên một dòng cách nhau bởi dấu cách.

Kết quả
Nếu không thể đáp ứng nhu cầu ăn của tất cả các thí sinh, in ra -1. Nếu không, in ra một số nguyên
duy nhất — số lượng người no bụng tối đa.

Chấm điểm

• 20% số test đầu ứng với 20% số điểm của bài có n ≤ 20;

• 20% số test tiếp theo ứng với 20% số điểm của bài có n ≤ 100 và k ≤ 2000;

• 20% số test tiếp theo ứng với 20% số điểm của bài có n ≤ 1000;

• 40% số test còn lại ứng với 40% số điểm của bài không có ràng buộc gì thêm.

Trang 6 trên 7
Ví dụ
CHEF.INP CHEF.OUT
3 2 -1
1 2
1 3
1 4
3 4 0
1 2
1 3
1 4
3 5 1
1 2
1 3
1 4

Giải thích
Ở ví dụ đầu tiên, Phát không thể đáp ứng nhu cầu ăn của tất cả thí sinh (2 < 3).
Ở ví dụ thứ hai, Phát có thể làm cho người thứ nhất cảm thấy no, tuy nhiên sau đó số người no bụng
lớn hơn số người cảm thấy vừa đủ, điều này vi phạm yêu cầu của ban tổ chức. Do đó Phát không thể để
người thứ nhất ăn no.

Trang 7 trên 7

You might also like