Đề thi giữa kỳ môn Thuật toán ứng dụng| Trường Đại học Bách Khoa Hà Nội

Bài 1. RUN: Huyền đang có một dãy số nguyên a = a1, a2, . . . , an. Cô muốn cắt a thành các đoạn con gồm các phần tử liên
tiếp của a, sao cho mỗi đoạn đều là một dãy tăng. Hãy giúp Huyền tính xem cô phải cắt a thành ít nhất bao nhiêu đoạn để thỏa mãn tính chất trên.

Thi giữa kỳ THUẬT TOÁN ỨNG DỤNG
Đại học Bách Khoa Nội, 28/11/2020
LƯU Ý
Nộp bài tại: 202.191.56.248:18888/Test
Trong tất cả các bài:
Dữ liệu vào từ thiết bị vào chuẩn (stdin)
Kết quả ghi ra thiết bị ra chuẩn (stdout)
Bộ test thử nghiệm offline được cho đính kèm vào mỗi bài trên server.
Mục lục
RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
DINO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
DIGITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
SEQMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Bài 1. RUN
Huyền đang một y số nguyên a = a
1
, a
2
, . . . , a
n
. muốn cắt a thành các đoạn con gồm các phần tử liên
tiếp của a, sao cho mỗi đoạn đều một y tăng. y giúp Huyền tính xem phải cắt a thành ít nhất bao nhiêu
đoạn để thỏa mãn tính chất trên.
Dữ liệu vào
Dòng đầu chứa số nguyên dương n (1 n 10
5
)
Dòng tiếp theo chứa n số nguyên dương a
1
a
2
. . . a
n
(0 a
i
10
9
)
Kết quả
Ghi một số nguyên duy nhất số ít nhất các đoạn con tăng của a.
dụ
test answer
6
3 6 1 7 8 2
3
Giải thích
y a được cắt thành (3,6), (1,7,8), (2)
Trang 1 trên 4
Thi giữa kỳ THUẬT TOÁN ỨNG DỤNG
Đại học Bách Khoa Nội, 28/11/2020
Bài 2. DINO
Khủng long kỳ thực không hề hung dữ như người ta vẫn tưởng, chúng rất thông minh và dễ bảo. Bạn người
trông giữ khủng long và nhiệm vụ sắp xếp lại khủng long trong chuồng. Chuồng chỉ một cửa ra vào, và chiều
ngang hẹp chỉ vừa đủ cho một con khủng long di chuyển, thế con nào vào chuồng trước thì sẽ phải ra sau.
cạnh chuồng một hành lang. Hành lang một cửa vào và một cửa ra, và chiều ngang cũng vừa đủ cho một con
khủng long di chuyển, nên con nào vào trước sẽ phải ra trước.
n con khủng long, tất cả đều đang trong chuồng. Con khủng long thứ i (tính từ cửa chuồng vào trong) số
hiệu p
i
(p
1
, p
2
, . . . , p
n
một hoán vị của {1, 2, . . . , n}). Để sắp xếp lại các con khủng long, bạn sẽ sử dụng đèn
báo hiệu được lắp chuồng và hành lang. Khi bật đèn báo hiệu chuồng, nếu trong chuồng khủng long thì một
con khủng long trong chuồng sẽ đi sang hành lang. Khi bật đèn báo hiệu hành lang, nếu hành lang khủng
long thì một con khủng long hành lang sẽ đi vào chuồng. ràng thể sắp xếp lại khủng long chỉ sử dụng
các thao tác bật đèn như trên. Tuy nhiên mải ngắm nhìn con khủng long yêu thích bạn đã quên mất công
việc của mình. Lúc về nhà, bạn nhớ lại thứ tự ban đầu của các con khủng long và thứ tự bật đèn của mình. Bạn
tự hỏi, sau những thao tác đó thì thứ tự hiện tại của các con khủng long trong chuồng sẽ như thế nào?
Dữ liệu vào
Dòng đầu chứa số nguyên dương n (1 n 10
5
)
Dòng tiếp theo chứa n số nguyên dương p
1
p
2
. . . p
n
Dòng tiếp theo chứa một xâu s (1 |S| 10
6
) gồm nhiều tự viết liền nhau, các tự C cho biết bạn
bật đèn chuồng, các tự H cho biết bạn bật đèn hành lang. Lưu ý các đèn đèn báo hiệu và sẽ tắt
ngay sau khi được bật sáng. Các đèn được bật theo đúng trình tự trong xâu s
Kết quả
Ghi ra số hiệu của các con khủng long trong chuồng theo thứ tự từ cửa chuồng vào trong. Dữ liệu đảm bảo sau
khi kết thúc, tất cả khủng long đều trong chuồng.
dụ
test answer
4
3 1 4 2
CCHCCHHH
4 3 1 2
Hạn chế
25% test với |s| = 2n, s
i
= C i n, s
i
= H i > n
Trang 2 trên 4
Thi giữa kỳ THUẬT TOÁN ỨNG DỤNG
Đại học Bách Khoa Nội, 28/11/2020
Bài 3. DIGITS
Cho một số nguyên dương N . Hãy đếm số cách điền giá trị cho các tự H, U, S, T, O, I, C sao cho
tổng số 4 chữ số HUST và số 5 chữ số SOICT bằng N : HU ST + SOICT = N. Lưu ý, hai tự
khác nhau phải nhận giá trị khác nhau.
Dữ liệu vào
Dữ liệu đầu vào cấu trúc như sau:
Dòng 1 ghi số b dữ liệu test T (1 T 50)
Dòng i + 1 (i = 1, . . . , T ) ghi giá trị N của b test thứ i
Kết quả
Trên mỗi dòng ghi ra kết quả của b dữ liệu test tương ứng.
dụ
test answer
5
17868
29119
49862
78952
1000002
10
0
16
8
0
Trang 3 trên 4
Thi giữa kỳ THUẬT TOÁN ỨNG DỤNG
Đại học Bách Khoa Nội, 28/11/2020
Bài 4. SEQMX
Cho dãy số nguyên a: a
1
, a
2
, ... , a
n
và một số nguyên dương k. Hãy tìm một đoạn con của a, ít nhất k phần
tử và trung bình cộng lớn nhất thể.
Dữ liệu vào
Dòng đầu chứa hai số nguyên dương: n k
Dòng tiếp theo chứa dãy a: a
1
a
2
... a
n
Kết quả
Ghi trung bình cộng lớn nhất tìm được, quy tròn đến số thập phân thứ năm (định dạng “%.5lf”)
dụ
test answer
7 3
2 4 5 1 3 4 1
3.66667
Hạn chế
1 k n 10
5
, 10
5
a
i
10
5
50% số test với n 5000
Trang 4 trên 4
| 1/4

Preview text:

Thi giữa kỳ THUẬT TOÁN ỨNG DỤNG
Đại học Bách Khoa Hà Nội, 28/11/2020 LƯU Ý
Nộp bài tại: 202.191.56.248:18888/Test Trong tất cả các bài:
• Dữ liệu vào từ thiết bị vào chuẩn (stdin)
• Kết quả ghi ra thiết bị ra chuẩn (stdout)
• Bộ test thử nghiệm offline được cho đính kèm vào mỗi bài trên server. Mục lục
RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
DINO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
DIGITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
SEQMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Bài 1. RUN
Huyền đang có một dãy số nguyên a = a1, a2, . . . , an. Cô muốn cắt a thành các đoạn con gồm các phần tử liên
tiếp của a, sao cho mỗi đoạn đều là một dãy tăng. Hãy giúp Huyền tính xem cô phải cắt a thành ít nhất bao nhiêu
đoạn để thỏa mãn tính chất trên. Dữ liệu vào
• Dòng đầu chứa số nguyên dương n (1 ≤ n ≤ 105)
• Dòng tiếp theo chứa n số nguyên dương a1 a2 . . . an (0 ≤ ai ≤ 109) Kết quả
Ghi một số nguyên duy nhất là số ít nhất các đoạn con tăng của a. Ví dụ test answer 6 3 3 6 1 7 8 2 Giải thích
Dãy a được cắt thành (3,6), (1,7,8), (2) Trang 1 trên 4
Thi giữa kỳ THUẬT TOÁN ỨNG DỤNG
Đại học Bách Khoa Hà Nội, 28/11/2020 Bài 2. DINO
Khủng long kỳ thực không hề hung dữ như người ta vẫn tưởng, chúng rất thông minh và dễ bảo. Bạn là người
trông giữ khủng long và có nhiệm vụ sắp xếp lại khủng long trong chuồng. Chuồng chỉ có một cửa ra vào, và chiều
ngang hẹp chỉ vừa đủ cho một con khủng long di chuyển, vì thế con nào vào chuồng trước thì sẽ phải ra sau. Ở
cạnh chuồng có một hành lang. Hành lang có một cửa vào và một cửa ra, và chiều ngang cũng vừa đủ cho một con
khủng long di chuyển, nên con nào vào trước sẽ phải ra trước.
Có n con khủng long, tất cả đều đang ở trong chuồng. Con khủng long thứ i (tính từ cửa chuồng vào trong) có số
hiệu pi (p1, p2, . . . , pn là một hoán vị của {1, 2, . . . , n}). Để sắp xếp lại các con khủng long, bạn sẽ sử dụng đèn
báo hiệu được lắp ở chuồng và hành lang. Khi bật đèn báo hiệu ở chuồng, nếu trong chuồng có khủng long thì một
con khủng long trong chuồng sẽ đi sang hành lang. Khi bật đèn báo hiệu ở hành lang, nếu ở hành lang có khủng
long thì một con khủng long ở hành lang sẽ đi vào chuồng. Rõ ràng là có thể sắp xếp lại khủng long chỉ sử dụng
các thao tác bật đèn như trên. Tuy nhiên vì mải ngắm nhìn con khủng long yêu thích mà bạn đã quên mất công
việc của mình. Lúc về nhà, bạn nhớ lại thứ tự ban đầu của các con khủng long và thứ tự bật đèn của mình. Bạn
tự hỏi, sau những thao tác đó thì thứ tự hiện tại của các con khủng long trong chuồng sẽ như thế nào? Dữ liệu vào
• Dòng đầu chứa số nguyên dương n (1 ≤ n ≤ 105)
• Dòng tiếp theo chứa n số nguyên dương p1 p2 . . . pn
• Dòng tiếp theo chứa một xâu s (1 ≤ |S| ≤ 106) gồm nhiều ký tự viết liền nhau, các ký tự C cho biết bạn
bật đèn ở chuồng, các ký tự H cho biết bạn bật đèn ở hành lang. Lưu ý các đèn là đèn báo hiệu và sẽ tắt
ngay sau khi được bật sáng. Các đèn được bật theo đúng trình tự trong xâu s Kết quả
Ghi ra số hiệu của các con khủng long trong chuồng theo thứ tự từ cửa chuồng vào trong. Dữ liệu đảm bảo sau
khi kết thúc, tất cả khủng long đều ở trong chuồng. Ví dụ test answer 4 4 3 1 2 3 1 4 2 CCHCCHHH Hạn chế
Có 25% test với |s| = 2n, si = C ∀i ≤ n, si = H ∀i > n Trang 2 trên 4
Thi giữa kỳ THUẬT TOÁN ỨNG DỤNG
Đại học Bách Khoa Hà Nội, 28/11/2020 Bài 3. DIGITS
Cho một số nguyên dương N . Hãy đếm số cách điền giá trị cho các ký tự H, U, S, T, O, I, C sao cho
tổng số có 4 chữ số HU ST và số có 5 chữ số SOICT bằng N : HU ST + SOICT = N . Lưu ý, hai ký tự
khác nhau phải nhận giá trị khác nhau. Dữ liệu vào
Dữ liệu đầu vào có cấu trúc như sau:
• Dòng 1 ghi số bộ dữ liệu test T (1 ≤ T ≤ 50)
• Dòng i + 1 (i = 1, . . . , T ) ghi giá trị N của bộ test thứ i Kết quả
Trên mỗi dòng ghi ra kết quả của bộ dữ liệu test tương ứng. Ví dụ test answer 5 10 17868 0 29119 16 49862 8 78952 0 1000002 Trang 3 trên 4
Thi giữa kỳ THUẬT TOÁN ỨNG DỤNG
Đại học Bách Khoa Hà Nội, 28/11/2020 Bài 4. SEQMX
Cho dãy số nguyên a: a1, a2, ... , an và một số nguyên dương k. Hãy tìm một đoạn con của a, có ít nhất k phần
tử và có trung bình cộng lớn nhất có thể. Dữ liệu vào
• Dòng đầu chứa hai số nguyên dương: n k
• Dòng tiếp theo chứa dãy a: a1 a2 ... an Kết quả
Ghi trung bình cộng lớn nhất tìm được, quy tròn đến số thập phân thứ năm (định dạng “%.5lf”) Ví dụ test answer 7 3 3.66667 2 4 5 1 3 4 1 Hạn chế
• 1 ≤ k ≤ n ≤ 105, −105 ≤ ai ≤ 105
• Có 50% số test với n ≤ 5000 Trang 4 trên 4