You are on page 1of 6

Chia dãy

Cho dãy số 𝑎1 , 𝑎2 , … , 𝑎𝑛 . Tìm cách chia dãy 𝑎 thành 𝑠 + 1 đoạn liên tiếp sao cho tổng các
số trong đoạn lớn nhất là nhỏ nhất. Đoạn lớn nhất là đoạn có tổng lớn nhất trong các đoạn
được chia.
Dữ liệu: Vào từ file CHIADAY.INP
• Dòng đầu tiên chứa 2 số nguyên 𝑛, 𝑠 (𝑛 ≤ 1000, 𝑠 ≤ 50)
• Dòng thứ 2 chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 106 )
Kết quả: Ghi ra file CHIADAY.OUT một số nguyên duy nhất là tổng của đoạn lớn nhất
theo cách chia tìm được.
Ví dụ:
CHIADAY.INP CHIADAY.OUT
5 2 8
8 2 1 5 6

Giải thích: Cách chia tối ưu là {8}, {2, 1, 5}, {6}


Ràng buộc:
• 30% số test có 𝑠 < 𝑛 ≤ 20, 0 ≤ 𝑎𝑖 ≤ 106
• 30% số test khác có 𝑠 < 𝑛 ≤ 1000, 0 ≤ 𝑎𝑖 ≤ 106
• 40% số test còn lại có 𝑛 ≤ 1000, |𝑎𝑖 | ≤ 106
Ước dãy

Cho một mảng phần tử, ta định nghĩa vẻ đẹp của một mảng là ước chung lớn nhất của
tất cả các phần tử của nó. Vì muốn vẻ đẹp càng lớn càng tốt, ta có thể giảm giá trị các
phần tử đi không quá đơn vị.

Yêu cầu: Cho mảng phần tử và . Hãy tính vẻ đẹp lớn nhất có thể của mảng đã cho.

Dữ liệu: Vào từ file văn bản SUBKGCD.INP gồm

 Dòng đầu chứa 2 số ( )


 Dòng thứ 2 chứa số nguyên dương { }

Kết quả: Ghi ra file văn bản SUBKGCD.OUT một số duy nhất là vẻ đẹp lớn nhất có thể
của mảng đã cho.

Ví dụ:

SUBKGCD.INP SUBKGCD.OUT
5 3 7
8 21 52 15 77
SHUFFLE
Hôm nay, sau khi ngủ dạ y, Bờm quyế t định nghê nhạc. Anh bạ t danh sách chứa cá c bà i
mình yêu thích, và sử dụ ng chức nang shufflê củ a phà n mề m nghe nhạc để giữ chô cá c
bà i há t xuá t hiệ n mộ t cá ch ngẫu nhiên.

Chức năng shufflê sễ thực hiệ n như sau: Giả sử danh sách các bài hát của Bờm gồm 𝑛
bài, được đánh số từ 1 đến 𝑛. Trước khi phát nhạc, chức năng shufflê sẽ sinh hôá n vị
ngã u nhiên của tập 1. . 𝑛 và phát các bài hát theo thứ tự của hoán vị đó chô đế n khi
tá t cả cá c bà i há t đã được phát. Sau đố nố shufflê lại và bá t đà u chạ y lạ i danh sách
theo hoán vị mới sinh.

Ví dụ: Danh sách của Bờm có 6 bài hát (1, 2, 3, 4, 5, 6). Lần 1, phần mềm sẽ phát lần
lượt theo 1 thứ tự là hoán vị ngẫu nhiên của tập 1..6 (ví dụ: 1, 6, 5, 2, 4, 3). Khi tất cả
các bài đã được phát theo đúng thứ tự đó, chức năng shufflê sẽ sinh 1 hoán vị ngẫu
nhiên khác (ví dụ: 4, 5, 1, 2, 6, 3) và lại phát theo thứ tự này. Như vậy, các bài hát mà
Bờm sẽ nghe lần lượt là: 1, 6, 5, 2, 4, 3, 4, 5, 1, 2, 6, 3… và cứ tiếp tục như vậy.

Bạ n được cung cá p mộ t lịch sử gồm 𝑚 bà i há t đã được chơi trông buổ i sá ng (thêô
đú ng thứ tự mà Bờm đã nghê). Tuy nhiên, lịch sử nà y lạ i chưa hôà n chỉnh, bởi vì anh
ta bá t đà u viế t lạ i lịch sử cá c bà i há t tạ i mộ t thời điể m bá t kỳ trông buổ i sá ng hôm đố
(mộ t số bà i há t cố thể đã được chơi rồ i, rồ i anh ta mới bá t đà u viế t lạ i)

Yêu cầu: Từ bả n lịch sử nà y, bạ n cần xác định cố baô nhiêu điể m khá c nhau cố thể sễ
là thời điể m mà phần mềm shuffle danh sách cá c bà i há t. Mộ t vị trí cố thể là mộ t thời
điể m bắt đầu shuffle nế u nố chia dã y histôry thà nh cá c đôạ n độ dà i 𝑛 (số bà i há t trông
list ) với đôạ n đà n và đôạ n cuố i cố thể ít hơn 𝑛 bà i và không cố khôả ng nà ô chứa mộ t
bà i há t xuá t hiệ n tới 2 là n.

Dữ liệu: Vào từ filê văn bản SHUFFLE.INP

 Dồ ng đà u ghi 2 số 𝑛, 𝑚 (0 < 𝑛, 𝑚 ≤ 106 ): số lượng ca khú c trong danh sách và
độ dà i củ a lịch sử mà Bờm đã nghê trông buổi sáng đó.
 Dồ ng thứ 2 ghi 𝑚 số trông lịch sử các bài mà Bờm đã nghê.

Kết quả: Ghi ra filê văn bản SHUFFLE.OUT gồm một số duy nhá t là số thời điể m
khá c nhau cố thể là thời điểm shuffle danh sách nà y.

Ví dụ:
SHUFFLE.INP SHUFFLE.OUT

6 6 6
6 5 4 3 2 1
3 5 0
3 3 1 1 1
4 10 1
3 4 4 1 3 2 1 2 3 4
Giải thích têst đầu: cố 6 vị trí cố thể là thời điểm bắt đầu:
(6 5 4 3 2 1),
(..6) (5 4 3 2 1..)
(..6 5)(4 3 2 1..)
(..6 5 4)(3 2 1…)
(..6 5 4 3 )(2 1…)
(..6 5 4 3 2)(1…)

Subtask 1: 30% test có 1 ≤ 𝑚 ≤ 5000


Subtask 2: 70% test không có ràng buộc gì thêm.
Vùng liên thông
Tí và tèo là đôi bạn thân. Tuy nhiên, Tí rất thích vẽ, Tí vừa chia tờ giấy trắng thành 𝑚 × 𝑛
ô vuông. Tí thực hiện vẽ tô 𝑞 vệt mực từ ô (𝑥1 , 𝑦1 ) tới ô (𝑥2 , 𝑦2 ) (𝑥1 = 𝑥2 hoặc 𝑦1 = 𝑦2 ).
Mỗi vệt có kích thước ngang đúng bằng kích thước ô vuông, và sẽ làm đen các ô (𝑥, 𝑦)
thỏa mãn (𝑥1 ≤ 𝑥 ≤ 𝑥2 , 𝑦1 ≤ 𝑦 ≤ 𝑦2 ). Tèo không hiểu gì về nghệ thuật, nhưng Tèo lại
hứng thú với các vùng mới được tạo ra. Tèo nhìn theo các dòng vẽ của Tí rồi đặc biệt quan
tâm đếm xem có bao nhiêu vùng liên thông toàn màu trắng.
Yêu cầu: Hãy lập trình xác định giúp Tèo số thành phần liên thông toàn màu trắng sau mỗi
lần Tí vẽ một nét vẽ.
Dữ liệu: vào từ file DRAWRECT.INP
- Dòng đầu tiên chứa 3 số nguyên dương 𝑚, 𝑛, 𝑞
- 𝑞 dòng tiếp theo, mỗi dòng chứa 4 số 𝑥1 , 𝑦1 , 𝑥2 , 𝑦2 .
Kết quả: ghi ra file DRAWRECT.OUT gồm 𝑞 dòng, mỗi dòng một số nguyên là số lượng
vùng liên thông tìm được.
DRAWRECT.INP DRAWRECT.OUT
4 6 5 1
2 2 2 6 3
1 3 4 3 3
2 5 3 5 4
4 6 4 6 3
1 6 4 6
Giải thích:

Ràng buộc:
- 50% số test có 𝑛, 𝑚, 𝑞 ≤ 100
- 50% số test còn lại có 𝑛, 𝑚 ≤ 1000; 𝑞 ≤ 104
Cắm trại
Cho bảng vuông kích thước 𝑚 × 𝑛. Các hàng được đánh số 1, 2, … , 𝑚 từ trên xuống dưới. Các cột
được đánh số 1, 2, … , 𝑛 từ trái qua phải. Tại mỗi ô của bảng có thể có một số ô cấm.
Yêu cầu: Cho 𝑄 vị trí ô trên bảng. Với mỗi ô, xác định hình vuông lớn nhất chứa ô đó và không
chứa ô cấm.
Dữ liệu: Vào từ file SQUARE.INP
• Dòng đầu chứa 2 số nguyên dương 𝑚, 𝑛 (𝑚, 𝑛 ≤ 2000)
• 𝑚 dòng tiếp theo, dòng thứ 𝑖 chứa 𝑛 ký tự biểu thị dòng 𝑖 của bảng. Ký tự thứ 𝑗 biểu diễn
ô (𝑖, 𝑗). Giá trị ′#′ biểu diễn ô cấm.
• Dòng tiếp theo ghi số nguyên 𝑄 – số vị trí truy vấn.
• Q dòng tiếp, mỗi dòng chứa 2 số nguyên (𝑥, 𝑦) xác định tọa độ ô truy vấn.
Kết quả: ghi ra file SQUARE.OUT gồm 𝑄 dòng, dòng thứ 𝑖 ghi tương ứng diện tích hình vuông
lớn nhất tìm được, chứa ô trong truy vấn thứ 𝑖.
Ví dụ:
SQUARE.INP SQUARE.OUT
5 5 4
#...# 1
..#..
.....
#...#
#....
5
3 2
2 5
5 4
4 5
1 3

Ràng buộc: Gọi 𝐾 là số ô chứa đá.


• 15% số test tương ứng 15% số điểm có 𝑛, 𝑚 ≤ 50; 𝑄 ≤ 1000
• 15% số test khác tương ứng 15% số điểm có 𝑛 ≤ 10; 𝑚 ≤ 2000; 𝑄 ≤ 105
• 30% số test khác tương ứng 30% số điểm có 𝑛, 𝑚 ≤ 800; 𝐾 ≤ 105 ; 𝑄 ≤ 105
• 40% số test còn lại tương ứng 40% số điểm có 𝑛, 𝑚 ≤ 2000; 𝐾 ≤ 105 ; 𝑄 ≤ 105

You might also like