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

bé gi¸o dôc vµ §µo t¹o bé 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 f

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 (170.21 KB, 4 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Bộ giáo dục và Đào tạo</b>


<b> thi chọn đội tuyển Tin học Quốc gia </b>



<b>Thêi gian lµm bµi: 300 phót</b>


<b>Ngµy thi thø nhÊt: 3-5-2003</b>



<b>Tổng quan đề thi ngy th nht</b>


<b> Tên bài</b> <b> Tên chơng trình</b> <b>Tên file dữ liệu</b> <b>Tên file kết quả</b>


Bài 1

<b>Palindrome</b>

<b>PALINDR.PAS</b> <b>PALINDR.INP</b> <b>PALINDR.OUT</b>


Bài 2

<b>Sơn ghế</b>

<b>PAINT.PAS</b> <b>PAINT.INP</b> <b>PAINT.OUT</b>


Bi 3

<b>Thờm ng</b>

<b>ADDPATH.PAS</b> <b>ADDPATH.INP</b> <b>ADDPATH.OUT</b>


<i><b>HÃy lập trình giải các bài toán sau đây:</b></i>


<b>Bài 1. Palindrome</b>



Palindrome l xõu ký t m nu đọ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ỳ ln 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ự ln 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



<b>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</b>
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.


<b>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ý</b>
tự.


<b>Kết quả: Đa ra file văn bản PALINDR.OUT:</b>


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</i> (i = 1, 2, ..., k) sao cho s = p1p2...p<i>k.</i>


VÝ dơ:



PALINDR.INP PALINDR.OUT PALINDR.INP PALINDR.OUT
bobseesanna 3


bob
sees
anna


aabbaaaabb 2


aa


bbaaaabb



<b>Bµi 2. S¬n ghÕ</b>



Ghế ngồi trên sân vận động được chia thành từng lô, mỗi lô gồm <i>M</i> hàng đánh số từ 1 đến <i>M</i>, mỗi
hàng có <i>N</i> ghế đánh số từ 1 đến <i>N</i> từ trái qua phải (4 ≤ <i>M</i>, <i>N</i> ≤ 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ế cùng một màu, nhưng v× không nắm
được thiết kế, bộ phận thi công đã lắp các ghế một cách ngẫu nhiên mà không quan tâm đến màu
của chúng. Do thời điểm khánh thành sân đã đến q 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 trên 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ó <i>N</i> cặp ghế được
sơn lại.


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Dựa vào ảnh chụp tồ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ố <i><b>lượt</b></i> cặp ghế phải sơn là càng ít càng tốt.


Ví dụ, với <i>M</i> = 4, <i>N</i> = 4 v bc 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 sau:



BBBR
BBBB
WWWW
WWWW

BBWW
BBBB
WWWW
WWWW

BRRW
BBBB
WWWW
WWWW

BRBB
BBBB
WWWW
WWWW

<b>BWWB</b>
BBBB
WWWW
WWWW

RRWB
BBBB


WWWW
WWWW

<b>RRRR</b>
<b>BBBB</b>
WWWW
WWWW

WWWW
WWWW
WWWW
WWWW
<b>u cầu</b>: Tìm cách điều khiển rơ bốt thoả mãn các yêu cầu đặt ra.


<b>Dữ liệu</b>: Vào từ file văn bản PAINT.INP :


 Dòng đầu tiên chứa 2 số nguyên <i>M N</i>,


 <i>M</i> dòng sau mỗi dòng chứa một xâu <i>N</i> ký tự, mỗi ký tự là W, B hoặc R, dòng thứ <i>i</i>+1 thể


hiện màu các ghế trong hàng thứ <i>i</i>.


<b>Kết quả</b>: Đưa ra file văn bản PAINT.OUT:


 Dòng đầu tiên chứa <i>k</i> là tổng số lượt cặp 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>i j</i> cho biết rô bốt phải sơn cặp ghế (<i>j</i>, <i>j</i>+1) ở hàng ghế <i>i</i>;



o Dạng 2: H <i>i </i> cho biết rô bốt phải sơn các cặp ghế ở hai hàng <i>i</i> và <i>i</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.


<b>Ví dụ</b>

:



PAINT.INP PAINT.OUT


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>Bài 3. Thêm đường</b>



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

các đường đi khép kín đó. Tập hợp các điểm du lịch và các đoạn đường cùng nằm trên một đường
đi khép kín kiểu như vậy tạo thành một Phân khu du lịch.


<b>Yêu cầu:</b> Hãy tìm một cách bổ sung thêm một số ít nhất các đoạn đường mới sao cho mỗi điểm du


lịch của Vùng sinh thái chỉ thuộc vào đúng một Phân khu du lịch.


<b>Dữ liệu: </b>Vào từ file văn bản ADDPATH.INP:


 Dòng đầu tiên ghi <i>N</i> là số điểm du lịch của Vùng sinh thái (3 <i>N</i> 200),


 Các dòng tiếp theo, mỗi dòng ghi cặp số nguyên tương ứnglà chỉ số của 2 điểm du lịch
được nối trực tiếp với nhau.


<b>Kết quả: </b>Đư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ố <i>R</i> là số nhỏ nhất tìm được.


 Dịng thứ <i>i</i> trong <i>R</i> dòng tiếp theo chứa hai số nguyên dương <i>ai, bi</i> là chỉ số 2 điểm du lịch


mà đoạn đường mới thứ <i>i</i> nối trực tiếp chúng với nhau.


<b>Ví dụ:</b>


ADDPATH.INP ADDPATH.OUT ADDPATH.INP ADDPATH.OUT
4


1 2
2 3
2 4


-1 7


1 2


1 3
3 5
3 4
5 6
5 7


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4></div>

<!--links-->

×