Tải bản đầy đủ (.docx) (9 trang)

Các dạng bài tập ôn luyện thi học sinh giỏi các cấp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (185.62 KB, 9 trang )

MỤC LỤC
1.

Bài tập 1: Thả xốp..................................................................................................2

2.

Bài tập 2: PILOT....................................................................................................2

3.

Bài tập 3: BOCSOI13.............................................................................................3

4.

Bài tập 4: TIME.....................................................................................................4

5.

Bài tập 5: COOKIES..............................................................................................5

6.

Bài tập 6: Median...................................................................................................6

7.

Bài tập 7: Multiplication.........................................................................................6

8.


Bài tập 8: Stadium..................................................................................................7

9.

Bài tập 9: HOSTEL................................................................................................7

10.

Bài tập 10: ABD.....................................................................................................8

11.

Bài tập 11: POWERUP..........................................................................................9

1


CHUYÊN ĐỀ PRIORITY QUEUE (HÀNG ĐỢI ƯU TIÊN)
Link sol, test, code của chuyên đề: đính kèm
1. Bài tập 1: Thả xốp
Có N hạt xốp, hạt thứ i có khối lượng W i , được thả lần lượt xuống một ống nước đặc
biệt được thiết kế sao cho tại mỗi thời điểm chỉ có một hạt xốp nhẹ nhất nổi lên trên bề
mặt. Trước mỗi lần thả, hạt xốp đang nổi trên bề mặt sẽ bị ngấm nước và tăng gấp đôi
khối lượng. Hỏi sau khi thả hạt xốp cuối cùng vào ống thì khối lượng xốp tăng so với tổng
khối lượng ban đầu là bao nhiêu ?
Dữ liệu: Vào từ file văn bản SPONGE.IN
 Dòng 1: Số nguyên dương N ( N ≤10 5 )
 Dòng 2: N số nguyên dương W 1 , … W N ( W i ≤ 100 ∀ i=1. . N )
Kết quả: Ghi ra file văn bản SPONGE.OUT một số duy nhất là đáp án của bài tốn
Ví dụ:

SPONGE.IN
SPONGE.OUT
3
3
2 1 3

2. Bài tập 2: PILOT
HT AIRLINE là một hãng hàng không danh tiếng ở Việt Nam, tuy nhiên, để tồn tại
trong cơn bão suy thoái kinh tế, Ban giám đốc quyết định giảm chi phi tiền lương cho phi
công càng nhiều càng tốt.
HT airline có tất cả N phi cơng (N là số chẵn), các phi công được đánh số từ 1 đến N
(Phi công 1 là phi công trẻ nhất, phi công i là phi cơng có tuổi cao thứ i,… phi cơng n là
N
phi cơng cao tuổi nhất). HT airline cần chính xác 2 phi hành đoàn, mỗi phi hành đoàn
gồm 2 phi cơng (một lái chính và một lái phụ), lái chính phải nhiều tuổi hơn lái phụ.
Hợp đồng mà cơng ty kí với các phi cơng có 2 điều khoản rõ ràng: tiền lương khi là lái
chính và tiền lương khi là lái phụ. Rõ ràng, đối với 1 phi cơng, tiền lương lái chính bao giờ
cũng cao hơn tiền lương khi lái phụ. Tuy nhiên, với một phi hành đồn, có thể tiền lương
của lái chính lại thấp hơn lái phụ.
Để giảm chi phí trả tiền lương, HT phải xác định một cách phân chia tối ưu
hành đoàn.

N
2

phi

Bạn hãy giúp HT viết chương trình xác định số tiền tối thiểu để trả lương cho N phi
công.
Dữ liệu: Vào từ file văn bản PILOT.INP

 Dòng 1 : Số nguyên dương N , là số phi công ở HT airline (2 ≤ N ≤ 10000; N là số
chẵn).
2


 N dịng tiếp theo, dịng thứ i là thơng tin về phi công i : gồm hai số a và c viết cách
nhau 1 dấu cách trống, tương ứng là tiền lương khi lái chính và tiền lương khi lái
phụ. (1 ≤ a≤ c ≤100 000)
Kết quả: Ghi ra file văn bản PILOT.OUT một số nguyên duy nhất là tiền lương tối thiểu
phải trả cho N phi cơng.
Ví dụ :
PILOT.INP
6
10000
9000
6000
5000
9000
8000
6000

PILOT.OUT
32000

7000
3000
4000
1000
3000


PILOT.INP
6
5000
4000
9000
11000
7000
8000
6000

PILOT.OUT
33000

3000
1000
7000
5000
3000

3. Bài tập 3: BOCSOI13
Bước vào tiểu học, Bé Bi được cô giáo chủ nhiệm cho làm lớp trưởng. Nhân dịp kỷ
niệm ngày thành lập trường, Bé Bi tổ chức cho cả lớp chơi 1 trị chơi sau:
Có N đống sỏi xếp thành một hàng, đống thứ i có A i viên sỏi. Ta có thể ghép hai đống
sỏi bất kỳ thành một đống và mất một chi phí bằng 5% tổng hai đống sỏi đó. Hãy tìm cách
ghép N đống sỏi này thành một đống với chi phí là nhỏ nhất.
Ví dụ: Nếu chúng ta có 4 đống sỏi với số lượng sỏi là 10, 11, 12 và 13.
-

Bước 1: Ghép 2 đống 10 và 11 thành 1 đống có số lượng 21 (chi phí là 1.05)


-

Bước 2: Ghép đống 21 vừa thu được với đống 12 thành đống có số lượng 33 (chi
phí 1.65)

-

Bước 3: Ghép đống 33 vừa thu được với đống 13 thành 1 đống cuối cùng có số
lượng sỏi là 46 (chi phí 2.3)

-

Vậy tổng chi phí là 5.00. Tuy nhiên đây khơng phải là phương án ghép đống tối ưu,
chúng ta có phương án ghép 4 đống này thành 1 đống với chi phí nhỏ nhất là 4.60.

Các bạn hãy tìm giúp Bé Bi phương án chơi tối ưu nhé!
Dữ liệu: vào từ file văn bản BOCSOI13.INP có dạng:
 Dịng 1: Số ngun dương N (2 ≤ N ≤ 100.000) là số đống sỏi.
 Dòng tiếp theo, ghi N số nguyên dương, tương ứng là số lượng sỏi trong từng đống.
Số lượng sỏi không vượt quá 10.000.

3


Kết quả: Đưa ra file văn bản BOCSOI13.OUT một số thực duy nhất là chi phí nhỏ nhất
phải trả để ghép N đống sỏi thành 1 đống. Kết quả ghi dưới dạng 2 chữ số sau dấu thập
phân.
Ví dụ:
BOCSOI13.INP
4


BOCSOI13.OUT
4.60

10 11 12 13
2

0.10

1 1
4. Bài tập 4: TIME
Tại của hàng pizza của Mr. Hải Dương có một điểm khác biệt với các cửa hàng khác,
nếu tại của hàng bình thường thì khách hàng đến trước sẽ được phục vụ trước, khách hàng
đến sau sẽ được phục vụ sau thì ở của hàng Pizza của Mr. Hải Dương sẽ phục vụ theo tiêu
chí thời gian đợi trung bình của khách hàng là nhỏ nhất, vì vậy Anh ta sẽ quyết định phục
vụ khách hàng nào trước chứ không phụ thuộc vào khách đến sớm hay muộn.
Mỗi loại bánh pizza khác nhau thì cần một khoảng thời gian khác nhau để làm bánh. Vì
chỉ có một lị nướng bánh nên trong thời gian nướng một chiếc bánh pizza này thì Anh ta
khơng thể nướng thêm chiếc bánh nào khác.
Ví dụ: Nếu cửa hàng có 3 khách đến vào các thời điểm t 1=0, t 2=1 và t 3=2 và yêu cầu 3
chiếc bánh pizza có thời gian làm bánh là l 1=3, l2=9, l3=6. Nếu theo tiêu chí khách đến
trước được phục vụ trước thì thời gian chờ đợi của ba khách hàng lần lượt là
q 1=3, q2=11, q3=16 . Như vậy thời gian chờ trung bình là (3+11+ 16)/3=10. Đây khơng
phải là phương án tối ưu theo tiêu chí thời gian chờ trung bình nhỏ nhất. Mr. Hải Dương
sẽ lựa chọn phục vụ theo thứ tự là khách 1, khách 3 và sau đó mới là khách 2. Khi đó thời
gian chờ của ba khách lần lượt là q 1=3, q2=17, q 3=7. Như vậy thời gian chờ trung bình là
(3+17+ 7)/3=9.
Yêu cầu: Bạn hãy giúp Mr. Hải Dương tính thời gian chờ trung bình nhỏ nhất. Chỉ cần in
ra phần nguyên của thời gian chờ trung bình nhỏ nhất.
Ghi chú:

-

Thời gian chờ của một khách hàng là độ chênh lệch giữa hai thời điểm: thời điểm
khách hàng đến của hàng và thời điểm khách hàng rời cửa hàng;
Mr. Hải Dương không biết trước các yêu cầu của khách hàng, tức là đến thời điểm
t i, khi khách hàng i tới cửa hàng thì Mr. Hải Dương mới biết khách hàng i yêu cầu
bánh pizza làm trong thời gian l i.

Dữ liệu: Vào từ file văn bản TIME.INP:


Dòng đầu tiên chứa số nguyên dương n ( 1 ≤ n≤ 105 )là số khách hàng;

4




ndòng tiếp theo, dòng thứ i chứa hai số nguyên dương t i , l i (0 ≤ t i ≤10 9 , 1 ≤l i ≤109 ) mô
tả khách hàng i đến của hàng vào thời điểm t i và chiếc bánh khách hàng i cần sẽ
mất thời gian làm bánh là l i.

Các số trên một dòng của input file được ghi cách nhau bởi dấu cách.
Kết quả: Ghi ra file văn bản TIME.OUT một số nguyên duy nhất là phần nguyên của
thời gian chờ trung bình nhỏ nhất.
Ví dụ:
TIME.INP
TIME.OUT
3
8

03
19
25
4
7
03
20 1
19
26
1. Bài tập 5: COOKIES

Giải thích
Thứ tự phục vụ là khách hàng 1, khách
hàng 3 và khách hàng 2.
Thời gian chờ trung bình nhỏ nhất là:
(3+16+ 6)/3=25 /3=8,33

Thứ tự phục vụ là khách hàng 1, khách
hàng 4, khách hàng 3 và khách hàng 2.
Thời gian chờ trung bình nhỏ nhất là:
(3+1+17+ 7)/4=28/4=7

HD muốn tất cả các bánh quy của anh ấy đều có độ ngọt ≥ K . Để làm được điều này, Anh
ấy đã làm như sau:
-

Chọn 2 bánh quy có độ ngọt nhỏ nhất và nhỏ nhì
Trộn hai bánh này vào nhau, nướng lại thành 1 bánh với độ ngọt mới ¿ ¿ độ ngọt
nhỏ nhất +2 × độ ngọt nhỏ nhì)


Anh ấy lặp đi lặp lại thao tác như vậy cho đến khi tất cả các bánh quy đều có độ ngọt ≥ K .
Bạn hãy cho biết Anh ấy phải nướng lại bao nhiêu lần để được như vậy?
Dữ liệu: Vào từ file văn bản COOKIES.INP
-

Dòng 1: Hai số nguyên dương n(1 ≤ n ≤106 ) là số lượng bánh quy và số nguyên
K (0 ≤ K ≤10 9)

-

Dòng tiếp theo chứa n số nguyên a 1 , a2 , … , an (0 ≤ ai ≤10 6), a i là độ ngọt của bánh quy
thứ i

Kết quả: Ghi ra file văn bản COOKIES.OUT một số nguyên duy nhất là số lần nướng lại
bánh, ghi -1 nếu không thể đạt được tất cả các bánh quy đều có độ ngọt ≥ K

5


Ví dụ:
COOKIES.INP
6 7
1 2 3 9 10 12

COOKIES.OUT
2

Giải thích
Sau lần nướng 1: 3, 5, 9, 10,
12

Sau lần nướng 2: 9, 10, 12,
13

2. Bài tập 6: Median
Cho dãy số a 1 , a2 , … , an . Ta có định nghĩa median của một dãy số như sau:
- Nếu độ dài dãy là lẻ thì median¿phần tử giữa của dãy sau khi sort. Ví dụ a={1,2,3 }
thì median ¿ 2
- Nếu độ dài dãy là chẵn thì median ¿trung bình cộng của hai phần tử giữa của dãy
sau khi sắp xếp. Ví dụ a={1,2,3,4 } thì median=

2+3
=2.5
2

u cầu: Cho n số nguyên, với mỗi lần nhập a i bạn phải thực hiện:
- Thêm a i vào dãy số
- Tính median cho dãy số mới cập nhật
- In ra median của các dãy số mới cập nhật trên từng dòng, mỗi median in ra theo
định dạng 1 chữ số thập phân sau dấu phẩy.
Dữ liệu: Vào từ file văn bản MEDIAN.INP
-

Dòng 1: số nguyên dương n(1 ≤ n ≤105 )
ndòng tiếp theo, dòng thứ i chứa số nguyên a i(0 ≤a i ≤ 105 )

Kết quả: Ghi ra file văn bản MEDIAN.OUT n số nguyên trên n dòng theo thứ tự là
median của các dãy số.
Ví dụ:

3.


MEDIAN.INP
MEDIAN.OUT
6
12.0
12
8.0
4
5.0
5
4.5
3
5.0
8
6.0
7
Bài tập 7: Multiplication

Giải thích
{12}. Median = 12.0
{4;12}. Median = 8.0
{4;5;12}. Median = 5.0
{3;4;5;12}. Median = 4.5
{3;4;5;7;8;12}. Median = 6.0

Cho dãy số a 1 , a2 , … , an. Với mỗi chỉ số i, bạn hãy cho biết tích của ba số hạng lớn nhất,
lớn nhì và lớn ba của các số trong đoạn [1; i].
Dữ liệu: Vào từ file văn bản MULTIPLICATION.INP
-


Dòng 1: số nguyên dương n(1 ≤ n ≤105 )
6


-

Dòng tiếp theo, chứa dãy số a 1 , a2 , … , an (0 ≤ ai ≤10 6)

Kết quả: Ghi ra file văn bản MULTIPLICATION.OUT trên n dòng, mỗi dịng tương
ứng với kết quả u cầu. Nếu khơng tồn tại số lớn nhì và lớn thứ 3 thì ghi -1
Ví dụ:
MULTIPLICATION.IN
P
5
12345

4.

MULTIPLICATION.OU
T
-1
-1
6
24
60

Bài tập 8: Stadium
Sân vận động Lạch Tray tổ chức trận chung kết Champion league giữa MU và Barce, hiện
tại còn M hàng ghế trống (đánh số từ 1 đến M ), hàng ghế i còn trống x i ghế. Hiện tại xếp
hàng ngoài cổng sân vận động Lạch Tray có n người mua vé, mỗi người đến lượt mình

được mua 1 vé do ban tổ chức đưa (khơng có sự lựa chọn). Giá vé được quy định như sau:
tại thời điểm mua vé, nếu nhận được vé ở hàng i thì giá vé bằng số ghế cịn trống của hàng
i.
Yêu cầu: bạn hãy giúp BTC bán được nhiều tiền nhất?
Dữ liệu: Vào từ file văn bản STADIUM.INP
-

Dòng 1: Hai số nguyên dương m , n(1≤ m , n≤ 106 )
Dòng tiếp theo, chứa dãy số x 1 , x 2 , … , x m (0 ≤ xi ≤10 6 , x 1+ x2 +…+ xm ≥ n)

Kết quả: Ghi ra file văn bản STADIUM.OUT một số nguyên duy nhất là số tiền lớn nhất
thu được.
Ví dụ:

5.

STADIUM.INP
3 4
1 2 4
Bài tập 9: HOSTEL

STADIUM.OUT
11

Bản đồ thành phố HP như hệ trục tọa độ Oxy , HD đang ở tọa độ O(0 ; 0), Anh ấy muốn đến
nghỉ tại Hostel gần thứ K của thành phố HP.
Bạn có q truy vấn như sau:
- 1 x y : đưa hostel ở tọa độ ( x ; y )(−106 ≤ x , y ≤ 106) vào danh sách khách sạn mà HD
biết.
- 2: đưa ra khoảng cách của khách sạn gần thứ K trong danh sách của HD. Biết rằng

2
2
khoảng cách hai điểm A ( x 1 ; y 1 ) , B ( x 2 ; y 2) là AB=( x 2−x 1 ) + ( y 2− y 1 )
Biết rằng:
- Trong mọi truy vấn 2, HD luôn ở tọa độ O ( 0 ; 0 )
7


- Có ít nhất k truy vấn 1 trước khi có truy vấn 2.
Dữ liệu: Vào từ file văn bản HOSTEL.INP
-

Dòng 1: Hai số nguyên dương Q , K (0 ≤ K ≤Q ≤ 105)
Q dòng tiếp theo chứa các truy vấn

Kết quả: Ghi ra file văn bản HOSTEL.OUT trên từng dòng, mỗi dòng là kết quả ứng với
truy vấn 2.
Ví dụ:

6.

HOSTEL.INP
9 3
1 10 10
1 9 9
1 -8 -8
2
1 7 7
2
1 6 6

1 5 5
2
Bài tập 10: ABD

HOSTEL.OUT
200
162
98

Cho dãy a 1 , a2 , … an và q truy vấn như sau
- K S : đưa ra giá trị nhỏ thứ K
- K L: đưa ra giá trị lớn thứ K .
Dữ liệu: Vào từ file văn bản ABD.INP
- Dòng 1: Hai số nguyên dương N (0 ≤ N ≤106 )
- Dòng 2: N số nguyên dương a 1 , a2 , … an ( 1 ≤ ai ≤ 109 )
- Dòng 3: Số nguyên dương Q(1 ≤Q ≤ 106)
- Q dòng tiếp theo chứa các truy vấn dạng K S ( L )(1≤ K ≤105 )
Kết quả: Ghi ra file văn bản ABD.OUT trên từng dòng, mỗi dòng là kết quả ứng với truy
vấn.
Ví dụ:

7.

ABD.INP
5
1 2 3 4 5
3
3 L
3 S
1 L

Bài tập 11: POWERUP

ABD.OUT
3
3
5

8


HD rất thích chơi bài ma thuật, vào một ngày đẹp trời, anh ta bước vào một cửa hàng để
mua ít nhất một số quân bài biết rằng:
- Các quân bài được đặt cạnh nhau trên 1 bàn dài đánh số từ 1 đến n, quân bài i có
chỉ số sức mạnh là a i
- HD phải mua một dãy liên tiếp các quân bài và các quân bài này phải có chỉ số sức
mạnh đơi một khác nhau (tức là khơng có hai qn bất kỳ nào cùng chỉ số)
- Tổng chỉ số sức mạnh các quân bài là lớn nhất có thể?
Dữ liệu: Vào từ file văn bản POWERUP.INP
- Dòng 1: Số nguyên dương N (0 ≤ N ≤105 )
- Dòng tiếp theo chứa N số nguyên a 1 , a2 , … an (−10 9 ≤ ai ≤10 9)
Kết quả: Ghi ra file văn bản POWERUP.OUT một số nguyên duy nhất là tổng sức mạnh
lớn nhất có thể mua được.
Ví dụ:
POWERUP.INP
6
1 2 1 2 -2 5

POWERUP.OUT
6


9



×