You are on page 1of 4

LUYỆN TẬP CÁC KĨ THUẬT THIẾT KẾ THUẬT TOÁN CƠ BẢN

TỔNG QUAN VỀ ĐỀ BÀI


STT Tên file bài làm Giới hạn thời gian Giới han bộ nhớ Điểm
1 DCOUNT.CPP 1 giây/test 1 GB/test 100
2 NEGPAIRS.CPP 1 giây/test 1 GB/test 100
3 SMIN.CPP 1 giây/test 1 GB/test 100
4 PAVE.CPP 1 giây/test 1 GB/test 100
5 NCHAR.CPP 1 giây/test 1 GB/test 100
6 DISTANCE.CPP 1 giây/test 1 GB/test 100
7 FINDNAME.CPP 1 giây/test 1 GB/test 100
8 TENDEP.CPP 1 giây/test 1 GB/test 100
9 XOASO.CPP 1 giây/test 1 GB/test 100

THỐNG KÊ (DCOUNT.CPP)
Cho dãy số nguyên không âm 𝐴 = (𝑎1 , 𝑎2 , … , 𝑎𝑛 ) gồm n phần tử.
Yêu cầu: Hãy đếm số lượng các giá trị khác nhau có trong dãy 𝐴 và đưa ra số lần xuất hiện
của phần tử xuất hiện nhiều nhất?
Dữ liệu: Vào từ thiết bị nhập chuẩn
• Dòng đầu ghi số 𝑛 (𝑛 ≤ 106 )
• Dòng tiếp theo gồm 𝑛 số là các phần tử của dãy 𝐴, (0 ≤ ai ≤ 106 )
Kết quả: Ghi ra thiết bị xuất chuẩn gồm 2 số 𝑘 và 𝑡: 𝑘 là số lượng các giá trị khác nhau và
𝑡 là số lần xuất hiện của phần tử xuất hiện nhiều nhất trong dãy đã cho.
Ví dụ:
Sample Input Sample Output
8 63
11 2 13 4 50 2 2 3
Giải thích: có 6 giá trị khác nhau trong dãy là 2, 3, 4, 11, 13 và 50, số 2 xuất hiện nhiều
nhất là 3 lần.
CẶP SỐ ĐỐI NHAU (NEGPAIRS.CPP)
Cho dãy số nguyên 𝐴 = (𝑎1 , 𝑎2 , … , 𝑎𝑛 ). Hãy cho biết có bao nhiêu cặp chỉ số (𝑖, 𝑗) trong đó
𝑖 ≠ 𝑗 thỏa mãn 𝑎𝑖 = −𝑎𝑗
Dữ liệu: Vào từ thiết bị nhập chuẩn
Dòng 1 chứa số nguyên dương 𝑛 ≤ 106
Dòng 2 chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 cách nhau bởi dấu cách (∀𝑖: |𝑎𝑖 | ≤ 100)
Kết quả: Ghi ra thiết bị xuất chuẩn một số nguyên duy nhất là số cặp 𝑖 ≠ 𝑗 thỏa mãn 𝑎𝑖 =
−𝑎𝑗
Ví dụ
Sample Input Sample Output
9 4
-3 -2 -1 0 9 0 1 2 3
4 6
0000
SỐ NHỎ THỨ NHÌ (SMIN.CPP)
Nhập vào 1 dãy gồm N số nguyên (N ≤ 105 ), các số nguyên có giá trị tuyệt đối không vượt
quá 109 . Hãy cho biết số nhỏ nhất và số nhỏ thứ nhì của dãy vừa nhập.
Input Output
5 15
1
22
13
41
5
Giải thích: Số đầu tiên nhập vào là N = 5, sau đó là N số nguyên 1, 22, 13, 41, 5. Theo đó,
số nhỏ nhất là 1, số nhỏ thứ nhì là 5.

LÁT GẠCH (PAVE.CPP)


Chuẩn bị cho lễ khai giảng, Thầy Hưng - Hiệu trưởng trường Chuyên TN quyết định sẽ lát
lại cái sân trước nhà D1. Biết rằng, cái sân là một hình chữ nhật kích thước 𝑛 × 𝑚 và tất cả
các viên gạch mua về đều là hình vuông kích thước 𝑎 × 𝑎.
Yêu cầu: Hãy tính xem cần ít nhất bao nhiêu viên gạch để có thể lát kín cái sân đó, biết
rằng:
• không được cắt nhỏ các viên gạch để lát.
• cạnh của các viên gạch luôn song song với biên của hình chữ nhật
• Các viên gạch có thể lát chườm ra ngoài so với kích thước ban đầu của sân.
Dữ liệu: vào từ thiết bị nhập chuẩn gồm 3 số 𝑛, 𝑚, 𝑎 (1 ≤ 𝑛, 𝑚, 𝑎 ≤ 109 ).
Kết quả: ghi ra màn hình gồm 1 số duy nhất là số viên gạch ít nhất để lát kín cái sân đã
cho.
Ví dụ:
Sample Input Sample Output
664 4
XÁC ĐỊNH CHỮ CÁI (NCHAR.CPP)
Cho bảng chữ cái Latin viết thường xếp thành 1 vòng tròn theo chiều kim đồng hồ, các kí
tự được viết lần lượt theo thứ tự từ điển.
a
z b

Yêu cầu: Cho 1 kí tự c và 1 số nguyên n, hãy cho biết, tính theo chiều kim đồng hồ, kí tự
đứng trước kí tự c n đơn vị.
Dữ liệu vào từ bàn phím gồm kí tự c và số nguyên 𝑛 (𝑛 ≤ 26) cách nhau ít nhất 1 dấu
cách
Kết quả ghi ra màn hình kí tự cách kí tự 𝑐 𝑛 kí tự
Ví dụ:
Sample Input Sample Output
a4 e

z1 a
KHOẢNG CÁCH XA GẦN (DISTANCE.CPP)
Có 𝑛 bạn xếp hàng tham gia trò chơi phát quà, mỗi bạn sẽ phát quà cho 𝑛 − 1 bạn còn lại.
Có thể coi hàng nằm trên một trục số, bạn thứ 𝑖 đứng ở tọa độ 𝑥𝑖 (các tọa độ này đều là
các số nguyên) theo đúng thứ tự từ trái qua phải.
Biết trước tọa độ 𝑥1 , 𝑥2 , … , 𝑥𝑛 của các bạn đang đứng trong hàng (tọa độ này đã xếp tăng
dần từ trái qua phải). Biết:
• Khoảng cách giữa hai bạn thứ 𝑖 và thứ 𝑗 được tính bằng công thức |𝑥𝑖 − 𝑥𝑗 |
• Khoảng cách gần nhất cho một bạn đi phát quà là khoảng cách từ bạn đó đến bạn
gần mình nhất.
• Khoảng cách xa nhất cho một bạn đi phát quà là khoảng cách từ bạn đó đến bạn
cách xa mình nhất.
Trước khi trò chơi bắt đầu, ban tổ chức muốn tính khoảng cách gần nhất và khoảng cách
xa nhất của mỗi bạn phải di chuyển để tặng quà?
Dữ liệu vào từ thiết bị nhập chuẩn:
• Dòng đầu là số 𝑛 (𝑛 ≤ 105 ).
• Dòng tiếp theo chứa 𝑛 số 𝑥1 , 𝑥2 , … . , 𝑥𝑛 (|𝑥𝑖 | ≤ 109 ).
Kết quả ghi ra màn hình gồm 𝑛 dòng. Dòng thứ 𝑖 ghi hai số 𝑚𝑖𝑛𝑥 và 𝑚𝑎𝑥𝑥 tương ứng là
khoảng cách gần nhất và khoảng cách xa nhất mà bạn thứ 𝑖 phải di chuyển để tặng quà
cho 𝑛 − 1 bạn còn lại.
Ví dụ:
Sample Input Sample Output

5 1 4
12345 1 3
1 2
1 3
1 4

TÊN ĐẸP (TENDEP.*)


Nhập vào N xâu kí tự từ bàn phím là N họ tên (N ≤ 1000, họ tên viết bằng tiếng Việt không
dấu có độ dài không quá 1000 kí tự). Họ tên đẹp nhất là họ tên có nhiều kí tự nhất, nếu có
độ dài như nhau thì họ tên đẹp hơn là họ tên có nhiều nguyên âm hơn. Nếu có nhiều họ
tên đẹp bằng nhau thì chọn in ra họ tên có tổng mã ASCII của các kí tự nguyên âm lớn nhất
và xuất hiện trước trong dữ liệu vào)
Dữ liệu: nhập vào từ bàn phím
- Dòng đầu là số nguyên dương N
- N dòng tiếp theo mỗi dòng chứa một họ tên
Kết quả: in ra màn hình tên đẹp nhất tìm được.

Input Output

2 Nguyen van A
Nguyen van A
tran thi b
XÓA SỐ (XOASO.*)
Cho số nguyên P, hai dãy các số nguyên A1, A2, . . . , AP; S1, S2, . . . , SP. Số nguyên N được
thành lập bằng cách viết số nguyên S1 liên tiếp A1 lần, rồi S2 liên tiếp A2 lần, cứ tiếp tục
như thế với SP.
Yêu cầu: Xóa K chữ số của N để thu được số bé nhất N1. Xóa K chữ số của N để thu
được số lớn nhất N2.
Dữ liêu: tệp văn bản XOASO.INP
• Dòng đầu tiên chứa 2 số P, K
• P dòng tiếp theo, dòng thứ i chứ hai số Ai và Si
Kết quả: tệp văn bản XOASO.OUT
• Dòng 1 : ghi số N1
• Dòng 2 : ghi số N2
• Dòng 3 : ghi kết quả của tích N1.N2
• Nếu số N bị xóa hết thì số thu được sẽ là 0.

XOASO.INP XOASO.OUT

34 2111
22 5431
1 543 11464841
31

Các số Ai, Si đều không quá 32000. P, K < 101.


Ghi chú: 40% test là các số N < 109
TÌM TÊN (FINDNAME.CPP)
Học trò giáo sư X tỏ ra rất kém trong môn hóa học. Để cải thiện tình hình học tập môn này,
việc đầu tiên là phải nhớ được những tên khoa học của các nguyên tố và hợp chất.
Với một tên cho bởi xâu ký tự 𝑆 chỉ gồm các chữ cái thường tiếng Anh. Giáo sư X viết vào
sau mỗi nguyên âm (“a”, “e”, “i”, “o”, “u”, “y”) một chữ cái “m” để được xâu 𝑆 ′ . Các sinh
viên được cho xâu 𝑆 ′ và yêu cầu tìm xâu 𝑆.
Yêu cầu: Hãy giúp các bạn sinh viên tìm tên 𝑆 ban đầu.
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm 1 dòng chứa xâu ký tự 𝑆 ′ gồm không quá 105 chữ
cái thường.SS
Kết quả: Ghi ra thiết bị xuất chuẩn xâu ký tự 𝑆 tìm được.
Ví dụ
FINDNAME.INP FINDNAME.OUT
omxymgemn oxygen
camlcimumm calcium
brommimnem bromine
hymdromcamrbomn hydrocarbon

You might also like