You are on page 1of 4

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN ĐỘI TUYỂN DỰ THI CẤP QUỐC GIA

GIA LAI LỚP 12 THPT, NĂM HỌC 2017 – 2018

Môn: TIN HỌC

ĐỀ DỰ BỊ Thời gian làm bài: 180 phút (không kể thời gian phát đề)

Ngày thi: 27/10/2017

(Đề thi gồm 04 trang, 03 bài)

Hãy lập trình giải các bài toán sau đây và đặt tên tệp chương trình lần lượt là BAI1.*,
BAI2.*; BAI3.*.
Bài 1. (6 điểm) Hệ thống xe bus
Ở một thành phố nọ, mật độ dân số cao, đường xá thì chật hẹp, vấn đề giao thông và môi
trường trở nên khó khăn với nhiều người dân. Nhằm khuyến khích người dân hạn chế dùng
phương tiện cá nhân, chính quyền thành phố phát triển hệ thống giao thông công cộng là xe
bus. Có n trạm xe bus đánh dấu từ 1 đến n. Có m tuyến đường, tuyến thứ i nối trực tiếp hai
trạm ui và vi với thời gian di chuyển ti, chú ý ui nối vi không có nghĩa vi nối ui và không lặp lại
(1≤ m < n2, i: 1 .. m, 1≤ ui , vi ≤ n).
Sau nhiều năm sử dụng xe bus, đến nay người dân vẫn cảm thấy không thoải mái. Ví dụ
họ muốn biết, nếu xuất phát từ một trạm s đến một trạm f thì có đi xe bus được không (có thể
đi gián tiếp), nếu đi được thì tìm số lượng tuyến ít nhất để số lần chuyển xe ít nhất và thời gian
ít nhất, cho thời gian chuyển tuyến bằng không. Có p yêu cầu như thế, yêu cầu thứ j có trạm
xuất phát sj và trạm đích fj (j: 1 .. p, 1≤ s j , fj ≤ n). Bạn có thể giúp chính quyền thành phố giải
quyết bài toán.
Yêu cầu chung: Cho n, m, p, ui, vi, ti, sj, fj (2≤ n ≤103, 1≤ p ≤107, 1≤ ti ≤103, i: 1 .. m, j: 1 .. p).
Hãy tìm số lượng tuyến ít nhất và thời gian nhất ít nhất cho mỗi yêu cầu trong p yêu cầu. Lưu
ý: số lượng tuyến ít nhất và thời gian ít nhất là hai ý độc lập. Thời gian chạy chương trình trong
vòng 1 giây.
Dữ liệu: Vào từ file văn bản Bus.inp:
 Dòng đầu chứa 3 số nguyên n, m, p
 m dòng tiếp theo, mỗi dòng chứa ui, vi, ti.
 p dòng tiếp theo, mỗi dòng chứa cặp sj, fj.

Trang 1/4
 Các số trên cùng dòng cách nhau ít nhất một khoảng trắng.
Kết quả: Đưa ra file văn bản Bus.out:
 Ghi p dòng đầu tiên theo thứ tự p yêu cầu đã cho, mỗi dòng nếu tìm thấy thì ghi số
tuyến ít nhất và thời gian ít nhất, ngược lại thì dòng đó ghi -1.
 Ghi thêm dòng cuối cùng chứa tổng số tuyến ít nhất và tổng thời gian ít nhất của p yêu
cầu, ngoại trừ yêu cầu không tìm thấy.
 Các số trên cùng 1 dòng cách nhau 1 khoảng trắng.
Ví dụ:

Bus.inp Bus.out

562 12
121 3 13
231 4 15
134
345
456
517
13
15

Giải thích: s = 1, f = 3, số tuyến ít nhất là 1 vì đi qua 1 tuyến là (1,3), thời gian ít nhất là 2 do
đi qua tuyến (1, 2) và (2, 3). Tương tự với s = 1, f = 5 ta cũng tìm được số tuyến ít nhất là 3 và
thời gian ít nhất là 13. Tổng số tuyến ít nhất 1+3=4, tổng thời gian ít nhất 2+13=15.

Ràng buộc: Có 60% số test ứng với 60% số điểm của bài có n ≤ 400, p ≤ 40000.

Bài 2. (7 điểm) Trả tiền lương


Tim là chủ trang trại trồng Cà phê, đã đến mùa thu hoạch Tim phải thuê nhân
công để thu hoạch Cà phê. Hiện tại Tim có n tờ tiền (n nguyên dương ) có giá t1,
t2,..., tn. Số tiền mà Tim phải trả cho nhân công là S. Em hãy lập trình giúp Tim tìm cách
trả số tiền S sao cho tốn ít tờ nhất.
Dữ liệu: vào từ file ATM.INP có dạng:
 Dòng đầu là 2 số n và S

Trang 2/4
 Dòng thứ 2 gồm n số t1, t2,..., tn.
Kết quả: Ghi ra file ATM.OUT có dạng: Nếu có thể trả tiền đúng bằng S thì đưa ra số
tờ ít nhất cần trả và đưa ra cách trả, nếu không ghi -1.
ATM.INP ATM.OUT
10 390 5
200 10 20 20 50 50 50 50 100 100 20 20 50 100 200

Các số trên cùng một dòng được ghi cách nhau bởi dấu cách.
Bài 3. (7 điểm) Xây dựng thành phố
Nước Alpha đang lập kế hoạch xây dựng một thành phố mới và hiện đại. Theo kế hoạch,
thành phố sẽ có N vị trí quan trọng, được gọi là N trọng điểm và các trọng điểm này được đánh
số từ 1 tới N. Bộ giao thông đã lập ra một danh sách M tuyến đường hai chiều có thể xây dựng
được giữa hai trọng điểm nào đó. Mỗi tuyến đường có một thời gian hoàn thành khác nhau.
Các tuyến đường phải được xây dựng sao cho N trọng điểm liên thông với nhau. Nói cách
khác, giữa hai trọng điểm bất kỳ cần phải di chuyển được đến nhau qua một số tuyến đường.
Bộ giao thông sẽ chọn ra một số tuyến đường từ trong danh sách ban đầu để đưa vào xây dựng
sao cho điều kiện này được thỏa mãn.
Do nhận được đầu tư rất lớn từ chính phủ, bộ giao thông sẽ thuê hẳn một đội thi công
riêng cho mỗi tuyến đường cần xây dựng. Do đó, thời gian để hoàn thành toàn bộ các tuyến
đường cần xây dựng sẽ bằng thời gian lâu nhất hoàn thành một tuyến đường nào đó.
Yêu cầu: Giúp bộ giao thông tính thời gian hoàn thành các tuyến đường sớm nhất thỏa mãn
yêu cầu đã nêu.
Dữ liệu: Vào từ file văn bản City.inp:
 Dòng chứa số N và M (1 ≤ N ≤ 1000; 1 ≤ M ≤ 10000).
 M dòng tiếp theo, mỗi dòng chứa ba số nguyên u, v và t cho biết có thể xây dựng tuyến
đường nối giữa trọng điểm u và trọng điểm v trong thời gian t (1 ≤ t ≤ 10 5). Không có
hai tuyến đường nào nối cùng một cặp trọng điểm.
Kết quả: Một số nguyên duy nhất là thời gian sớm nhất hoàn thành các tuyến đường thỏa mãn
yêu cầu đã nêu, nếu không tìm được thì ghi -1.

Trang 3/4
Ví dụ:

City.inp City.out

57 3
122
151
251
143
132
532
344

Ràng buộc: Có 60% số test ứng với 60% số điểm của bài có N ≤ 250, M ≤ 2500.

----------------Hết----------------

 Thí sinh không được sử dụng tài liệu.


 Cán bộ coi thi không giải thích gì thêm.

Trang 4/4

You might also like