Mặc dù giữa 2 điểm du lịch bất kỳ của Khu chỉ có không quá một đoạn đường đi nối trực tiếp chúng với nhau và mỗi đoạn đường đi chỉ nối hai điểm du lịch khác nhau, song toàn bộ hệ thống đ[r]
Trang 1Bộ giáo dục và Đào tạo
Đề thi chọn đội tuyển Tin học Quốc gia
Thời gian làm bài: 300 phút Ngày thi thứ nhất: 3-5-2003
Tổng quan đề thi ngày thứ nhất Tên bài Tên chơng trình Tên file dữ liệu Tên file kết quả
Bài 1 Palindrome PALINDR.PAS PALINDR.INP PALINDR.OUT
Bài 3 Thêm đờng ADDPATH.PAS ADDPATH.INP ADDPATH.OUT
Hãy lập trình giải các bài toán sau đây:
Bài 1 Palindrome
Palindrome là xâu ký tự mà nếu đọc nó từ trái sang phải cũng nh từ phải sang trái ta đợc cùng một xâu Một xâu ký tự bất kỳ luôn có thể biểu diễn nh là một dãy các palindrome nếu nh ta coi xâu chỉ gồm một ký tự luôn là palindrome
Ví dụ: Xâu ‘bobseesanna’ có thể biểu diễn dới dạng dãy các polindrome theo nhiều cách, chẳng hạn
‘bobseesanna’ = ‘bob’ + ‘sees’ + ‘anna’
‘bobseesanna’ = ‘bob’ + ‘s’ + ‘ee’ + ’s’ + ‘anna’
‘bobseesanna’ = ‘b’ +’o’ + ‘b’ + ‘sees’ + ‘a’ + ‘n’ + ‘n’ + ‘a’
Yêu cầu: Cho xâu ký tự s, cần tìm cách biểu diễn xâu s dới dạng một dãy gồm một số ít nhất các
palindrome
Ví dụ: Cho s = ‘bobseesanna’, do ta có ‘bobseesanna’ = ‘bob’ + ‘sees’ + ‘anna’ và không thể biểu
diễn ‘bobseesanna’ bởi ít hơn là 3 palindrome nên biểu diễn này chính là biểu diễn cần tìm
Dữ liệu: Vào từ file văn bản PALINDR.INP gồm một dòng chứa xâu ký tự s gồm không quá 255 ký
tự
Kết quả: Ghi ra file văn bản PALINDR.OUT:
Dòng đầu tiên ghi k là số lợng ít nhất các palindrome trong biểu diễn tìm đợc;
Dòng thứ i trong số k dòng tiếp theo ghi palindrome p i (i = 1, 2, , k) sao cho s = p1p2 p k
Ví dụ:
bobseesanna 3
bob sees anna
aa bbaaaabb
Bài 2 Sơn ghế
Ghế ngồi trờn sõn vận động được chia thành từng lụ, mỗi lụ gồm M hàng đỏnh số từ 1 đến M, mỗi hàng cú N ghế đỏnh số từ 1 đến N từ trỏi qua phải (4 ≤ M, N ≤ 20) Ghế cú 3 loại: màu trắng (W),
màu xanh (B) và màu đỏ (R) Theo thiết kế, mỗi lụ chỉ lắp ghế một màu, nhưng bộ phận thi cụng, vì khụng nắm được thụng tin, đó lắp cỏc ghế một cỏch ngẫu nhiờn theo màu tuỳ gặp Do thời điểm khỏnh thành sõn đó đến quỏ gần, khụng cú đủ thời gian để thỏo dỡ lắp đặt lại cỏc ghế, nờn người ta dựng một rụ bốt sơn trang trớ để sơn lại cỏc ghế Rụ bốt hoạt động theo nguyờn tắc sau:
Nếu hai ghế kề nhau cựng một hàng cú màu khỏc nhau thỡ rụ bốt sẽ sơn lại cặp ghế này bởi màu thứ ba
Nếu hai hàng ghế kề nhau cú màu khỏc nhau, nhưng ghế ở mỗi hàng là cựng màu, thỡ rụ bốt
sẽ sơn lại ghế của hai hàng này thành màu thứ ba, trong trường hợp này, cú N cặp ghế được
sơn lại
Đề Chính thức
Trang 2Dựa vào ảnh chụp toàn cảnh lô ghế, Bạn được đề nghị cài đặt một chương trình điều khiển rô bốt hoạt động theo nguyên tắc đã nêu để sơn lại các ghế sao cho tất cả các ghế trong lô có cùng một
màu đồng thời tổng số lượt cặp ghế phải sơn là càng ít càng tốt.
Ví dụ, với M = 4, N = 4 và bức tranh toµn c¶nh cña l« ghÕ là
BBBR BBBB
WWWW WWWW
Có 10 lượt cặp ghế được rô bốt sơn theo chương trình điều khiển như sau:
BBBR
BBBB
WWWW
WWWW
BBBB WWWW WWWW
BBBB WWWW WWWW
BBBB WWWW WWWW
BBBB WWWW WWWW
BBBB WWWW WWWW
BBBB
WWWW WWWW
WWWW WWWW WWWW
Yêu cầu: Tìm cách điều khiển rô bốt thoả mãn các yêu cầu đặt ra.
Dữ liệu: Vào từ file văn bản PAINT.INP :
Dòng đầu tiên chứa 2 số nguyên M N,
M dòng sau mỗi dòng chứa một xâu N ký tự, mỗi ký tự là W, B hoặc R, dòng thứ i+1 thể
hiện màu các ghế trong hàng thứ i
Kết quả: Đưa ra file văn bản PAINT.OUT:
Dòng đầu tiên chứa k là tổng số lượt ghế phải sơn theo cách điều khiển tìm được.
Các dòng tiếp theo mô tả cách điều khiển rô bốt sơn ghế, mỗi dòng có một trong hai dạng (tương ứng với hai nguyên tắc hoạt động của rô bốt) sau:
o Dạng 1: G i j cho biết rô bốt phải sơn cặp ghế (j, j+1) ở hàng ghế i;
o Dạng 2: H i cho biết rô bốt phải sơn các cặp ghế ở hai hàng i và i+1.
o Các ký tự và số trên cùng dòng phải được ghi cách nhau bởi dấu cách
Ví dụ:
4 4 BBBR BBBB WWWW WWWW
10
G 1 3
G 1 2
G 1 3
G 1 2
G 1 1
G 1 3
H 1
Bài 3 Thêm đường
Khu du lịch sinh thái Hoàn Mỹ có N điểm du lịch hết sức hấp dẫn được đánh số tuần tự 1, 2, , N.
Mặc dù giữa 2 điểm du lịch bất kỳ của Khu chỉ có không quá một đoạn đường đi nối trực tiếp chúng với nhau và mỗi đoạn đường đi chỉ nối hai điểm du lịch khác nhau, song toàn bộ hệ thống
đường giao thông ở Khu du lịch ấy vẫn cho phép đi từ một điểm du lịch i tuỳ ý tới một điểm du lịch
j tuỳ ý khác Tuy nhiên, hệ thống đường giao thông ấy vẫn còn rất hạn chế: Sau khi đi từ i tới j, nếu
muốn quay trở lại điểm i, ngêi ta buộc phải đi ngược trở lại toàn bộ các đoạn đường đã đi qua Để
chuẩn bị đón du khách của SEAGAME 22, Giám đốc Khu du lịch đã quyết định đầu tư xây dựng thêm một số đoạn đường nối trực tiếp một số cặp điểm du lịch mà giữa chúng còn chưa có đường nối, sao cho toàn bộ các điểm du lịch của Khu được chia thành một hoặc một số phân khu du lịch
Trang 3 Không có điểm du lịch nào thuộc đồng thời vào hai phân khu khác nhau;
Mỗi phân khu có một đường đi xuất phát từ một điểm du lịch tuỳ ý của phân khu, qua tất cả các điểm và các đoạn đường nối các điểm trong nội bộ phân khu ấy mỗi điểm, mỗi đoạn đường đúng một lần, rồi quay trở về điểm xuất phát
Yêu cầu: Xác định số lượng tối thiểu các đoạn đường phải xây dựng thêm.
Dữ liệu: Vào từ file văn bản ADDPATH.INP :
Dòng đầu tiên ghi N là số điểm du lịch trong Khu (3 N 100)
Dòng thứ i trên các dòng tiếp theo ghi cặp số k i m i tương ứnglà chỉ số của 2 điểm du lịch
được nối trực tiếp với nhau (1 k i , m i N)
Kết quả: Đưa ra file văn bản ADDPATH.OUT:
Dòng đầu ghi số -1 nếu không tồn tại cách bổ sung các đoạn đường thoả mãn yêu cầu đặt ra,
ngược lại, ghi số R là số nhỏ nhất tìm được
Dòng thứ i trong R dòng tiếp theo chứa hai số nguyên dương a i , b i là chỉ số 2 điểm du lịch
mà đoạn đường thứ i mới được xây dựng sẽ nối trực tiếp chúng với nhau
Ví dụ:
4
1 2
2 3
2 4
1 2
1 3
3 5
3 4
5 6
5 7
2
6 7
4 2
Trang 4Bộ giáo dục và Đào tạo
Đề thi chọn đội tuyển Tin học Quốc gia
Thời gian làm bài: 300 phút Ngày thi thứ hai: 4-5-2003
Tổng quan đề thi ngày thứ HAI Tên bài Tên chơng trình Tên file dữ liệu Tên file kết quả
Bài 4 SUNFARIN SUNFARIN.PAS SUNFARIN.INP SUNFARIN.OUT
Hãy lập trình giải các bài toán sau đây:
Bài 4 SUNFARIN
Để phũng ngừa bệnh dịch SARS người ta quyết định phõn phỏt thuốc nhỏ mũi Sunfarin xuống cỏc
trạm y tế để cung cấp miễn phớ cho tất cả mọi người trong địa bàn Cú N trạm y tế, đỏnh số từ 1 tới
N Mỗi trạm dự kiến được cấp cựng một số lượng như nhau cỏc hũm thuốc Tất cả thuốc đó được
chở về đủ tới một số trạm địa phương và đang được phõn phối xuống từng trạm Hiện tại trạm i đó nhận được P i hũm thuốc (P i 0, i = 1, 2, , N) SARS là bệnh cú khả năng lõy nhiễm cao Trong vựng phỏt hiện mầm bệnh, Bộ Y tế quyết định hạn chế mọi việc di chuyển, đi lại Trạm i chỉ nhận hoặc chuyển thuốc với 2 trạm lõn cận i-1 và i+1 (1 < i < N), trạm 1 chỉ giao tiếp với trạm 2 và trạm
N chỉ giao tiếp với trạm N-1 Do hạn chế về phương tiện vận chuyển nờn mỗi giờ mỗi trạm chỉ cú
thể chuyển sang mỗi trạm lõn cận một hũm thuốc Hóy xỏc định sớm nhất sau bao nhiờu giờ mỗi
trạm sẽ nhận đủ số hũm thuốc như kế hoạch ban đầu
Dữ liệu: Vào từ file văn bản SUNFARIN.INP:
Dũng đầu tiờn trong nhúm chứa số nguyờn N ( 1 < N ≤ 200),
Dũng thứ 2 chứa N số nguyờn khụng õm P1 P2 P N, cỏc số cỏch nhau ớt nhất một dấu cỏch
Kết quả: Đưa ra file văn bản SUNFARIN.OUT một số nguyờn là số giờ tối thiểu để hoàn thành kế
hoạch phõn phối thuốc Dữ liệu vào đảm bảo bài toỏn cú nghiệm
Vớ d : ụ:
Đề Chính thức
Trang 5Bài 5 Xem phim
Liên hoan phim quốc tế vừa đợc khai mạc Có n (1 n 50) thành phố đợc đánh số từ 1 đến n là các địa điểm đợc lựa chọn để chiếu các bộ phim tham gia Liên hoan Có tất cả t bộ phim đánh số từ
1 đến t (1 t n) đợc trình chiếu tại Liên hoan Biết rằng tại mỗi thành phố chỉ có một bộ phim
đ-ợc trình chiếu: tại thành phố i sẽ chiếu bộ phim f i Các thành phố đợc nối với nhau bởi một hệ thống
các tuyến đờng hai chiều Tuyến đờng j (1 j m) nối thành phố s j với e j (s j ≠ e j ) và có độ dài d j
(0 d j 1000) Hai thành phố bất kỳ có không quá một tuyến đờng nối chúng Bờm có kế hoạch
xem phim trong k ngày: Ngày i (1 i k) dự định xem bộ phim p i Có thể có những bộ phim xuất hiện nhiều lần trong kế hoạch của Bờm Để thực hiện việc xem một bộ phim đ ợc dự định trong kế hoạch này, Bờm cần di chuyển đến một trong các thành phố, nơi có bộ phim cần xem đ ợc trình chiếu Do không muốn phải di chuyển xa, Bờm muốn tìm cách thực hiện kế hoạch xem phim đề ra sao cho tổng độ dài quãng đờng cần phải di chuyển là nhỏ nhất Biết rằng ở thời điểm bắt đầu thực hiện kế hoạch Bờm đang ở thành phố 1 (khi kết thúc việc thực hiện kế hoạch xem phim, việc Bờm
đang ở thành phố nào là không cần quan tâm) Trong một ngày Bờm có thể thực hiện việc di chuyển trên quãng đờng có độ dài tuỳ ý
Yêu cầu: Giúp Bờm thực hiện kế hoạch xem phim sao cho tổng độ dài các quãng đờng phải di
chuyển là nhỏ nhất
Dữ liệu: Vào từ file văn bản CINEMA.INP:
Dòng đầu tiên chứa ba số n, m, k đợc ghi cách nhau bởi dấu cách;
Dòng thứ hai chứa các số f1, f2, , f n;
Dòng thứ j trong số m dòng tiếp theo chứa ba số s j , e j , d j;
Dòng cuối cùng chứa các số p1, p2, , p k
Các số trên cùng một dòng đợc ghi cách nhau bởi dấu cách
Kết quả: Ghi ra file văn bản CINEMA.OUT:
Dòng đầu tiên ghi tổng độ dài của đờng đi tìm đợc;
Dòng thứ hai chứa k số q1, q2, , q k , trong đó q i là thành phố mà Bờm sẽ phải di chuyển đến
để xem bộ phim p i.
Ví dụ:
6 7 7
2 1 2 3 1 4
1 2 13
2 3 7
3 4 5
4 1 4
1 5 8
5 3 10
2 6 0
1 2 1 4 3 2 1
49
5 3 2 6 4 3 2
Trang 6Bài 6 Số mảnh đất
Các toà nhà của Thành phố Đại học sẽ đợc xây dựng trên một khu đất hình đa giác có các cạnh song song với các trục toạ độ, hai cạnh liền kề vuông góc với nhau và các đỉnh đều có toạ độ là các số nguyên
Theo thiết kế, ngời ta sẽ xây dựng một tuyến đờng song song với trục hoành có đờng tâm đi qua
điểm có toạ độ nguyên và độ rộng của mặt đờng là 1 Với việc xây dựng tuyến đờng nh vậy khu đất
có thể bị chia ra thành một số lô đất mặt đờng
Yêu cầu: Xác định vị trí đờng tâm của một tuyến đờng cần xây dựng sao cho có nhiều lô đất của
khu đất trở thành lô đất mặt đờng nhất
Dữ liệu: Vào cho trên file văn bản DAT.INP có cấu trúc nh sau:
Dòng thứ nhất chứa số nguyên N, 4<N<5000 là số đỉnh của đa giác khu đất
Dòng thứ i trong N dòng tiếp theo (liệt kê theo chiều ngợc chiều kim đồng hồ, khu đất nằm
về phía trái của biên) chứa 2 số nguyên x, y tơng ứng là cặp toạ độ đỉnh thứ i của đa giác
Kết quả: Ghi trên file văn bản DAT.OUT gồm một dòng chứa 2 số nguyên K, y0 theo thứ tự là số lô
đất mặt đờng và hoành độ của đờng tâm của tuyến đờng tìm đợc
Ví dụ:
24
0 0
4 0
4 2
5 2
5 0
7 0
7 3
3 3
3 2
2 2
2 4
1 4
1 5
2 5
2 6
3 6
3 5
4 5
4 6
5 6
5 4
7 4
7 7
4 2