Tải bản đầy đủ (.doc) (52 trang)

Tap de thi TINHOC quoc gia

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 (935.98 KB, 52 trang )

h tt p :// vno i . i n f o Olympic tin học Việt Nam
Tuyển tập đề thi tin học quốc
g
i
a
(2005-2008)
h tt p :// vno i . i n f o Olympic tin học Việt Nam
Đề thi vòng I quốc gia
n
h tt p :// vno i . i n f o Olympic tin học Việt Nam
Năm
2005
Bảng
A
Bài 1. Phân đoạn Tên file chương trình: SEGPAR.PAS
Cho dãy số nguyên a
1
, a
2
, …, a
n
và số nguyên dương k. Ta gọi k-phân đoạn của dãy số đã cho là cách
chia dãy số đã cho ra thành k đoạn, mỗi đoạn là một dãy con gồm các phần tử liên tiếp của dãy. C
h
í
nh
xác hơn, một k-phân
đoạn được
xác định bởi dãy chỉ số
1


n
1
<
n
2
<
...
<
n
k
=
n

.
Đoạn t
h

i là
d
ã
y

c
on
a
n
i

1
+

1
,
a
n
i

1
+

2
,...,
a
i
,
i
=
1,2,...,
k
. Ở đây quy ước n
0
=
0.
Yêu cầu: Hãy xác định số M nhỏ nhất
để
tồn tại k-phân đoạn sao cho tổng các phần tử trong mỗi đoạn
đều
không vượt quá M.
Dữ liệu: Vào
từ
file văn bản SEGPAR.INP.


Dòng
đầu
tiên c
h

a hai số nguyên n và k
(1≤
k

n

15000);

Dòng t
h


i trong s

n dòng ti
ế
p theo c
h

a s

nguyên a
i
(

|
a
i
|


30000), i =1, 2, …, n.
Các số cạnh nhau trên một dòng trong file
dữ
liệu cách nhau
ít
nhất một dấu cách.
Kết quả: Ghi ra file SEGPAR.OUT một số nguyên duy nhất là giá trị M tìm được.
Ví dụ:
SEGPAR.INP SEGPAR.OUT
9 4
5
1
1
1
3
2
2
1
3
1
Bài 2: Pháo hoa Tên chương trình: FIREWK.PAS
Nhằm chào mừng các ngày lễ lớn trong năm 2005 người ta đã
chế
tạo một loại đạn pháo hoa mới, khi

bắn, đạn nổ thành bông hoa 2n cánh màu ( 1

n

30). Nguyên vật liệu cho phép tạo
được
m màu khác
nhau, đánh số
từ
1
đến
m (2

m

32).
Để đảm bảo
tính
mỹ thuật, việc chuyển tiếp màu giữa 2 cánh hoa kề nhau phải tuân theo quy tắc
chuyển
màu cầu vồng sau đây:

Bên cạnh cánh hoa màu i phải là cánh hoa màu i-1 hoặc i+1, với 1 < i < m,

Bên cạnh cánh hoa màu 1 chỉ có
thể
là cánh hoa màu 2,

Bên cạnh cánh hoa màu m chỉ có
thể

là cánh hoa màu m-1.
Một bông hoa không nhất thiết phải có
đầy đủ
m màu. Mỗi bông hoa tương

ng
với một vòng t
ròn

2n
số
thể
hiện màu của các cánh hoa.

dụ, hình 1 là bông hoa 24 cánh (n = 12) và hình 2 là vòng tròn số
tương

ng
với nó. Mỗi bông hoa được mô tả bằng dãy 2n số nguyên liệt kê các chỉ số màu c

a các
cánh hoa theo chiều kim
đồng
hồ.

dụ, bông hoa ở hình 1 có
thể được

tả bằng
dãy số

3 4 3 2 1 2 3 4 3 2 1 2 3 4 3 2 1 2 3 4 3 4 3
2.
Dãy có t
h

tự từ
điển
nhỏ nhất trong các dãy có
thể
dùng
để

tả
hoa được gọi là mã hoa. Khi
đ
ó,
mã hoa của bông hoa ở hình 1
sẽ

1 2 3 4 3 2 1 2 3 4 3 2 1 2 3 4 3 4 3 2 3 4 3
2.
Trong các ngày lễ, Ban tổ c
h

c yêu cầu bắn các đạn pháo hoa 2n cánh có đúng k cánh màu C (0
≤ k ≤
2). Các mã hoa thỏa mãn yêu cầu vừa nêu cũng được sắp xếp theo t
h

tự từ

điển
và đánh số bắt đầu
từ
1. Hơn nữa, nhằm tạo ra các hoa không giống nhau, đội bắn pháo hoa cần đảm bảo hai viên đạn pháo
hoa bắn liên tiếp phải có mã khác nhau. Do vậy, người ta đã thiết kế một Hệ thống chụp ảnh và phân
tích
tự động
để
báo cho đội bắn pháo hoa biết số t
h

tự của viên đạn pháo hoa vừa nổ trên t
r

i
.
Em
được
giao viết chương trình giải quyết nhiệm vụ
chính
trong phần mềm phân
tích tự động
này.
Yêu cầu: Cho
biết
n, m, k và C. Gọi X là
tập tất cả
các mã hoa 2n cánh có
đúng
k cánh màu

C.

Hãy xác định số lượng p các phần
tử
của X;

Cho một mã hoa nào đó trong tập X. Hãy xác định số t
h


tự từ điển
của nó t
rong
X.
Dữ liệu: Vào từ file văn bản FIREWK.INP. Dòng
đầu
tiên c
h

a 4 số nguyên n, m, k, C; dòng tiếp theo
c
h

a 2n số nguyên mô
tả
một mã hoa.
Các số trên một dòng của file
dữ
liệu cách nhau
ít

nhất một dấu cách.
Kết quả: Đưa ra file văn bản FIREWK.OUT. Dòng đầu tiên ghi số nguyên p; dòng tiếp theo ghi số
t
h


tự
tìm
được
của mã
hoa.
Ví dụ:
FIREWK.INP FIREWK.OUT
3 4 0 1 4
2 3 4 3 4 3 3
h tt p :// vno i . i n f o Olympic tin học Việt Nam
Bài 3. Bộ sưu tập Tên chương trình: COLLECT.PAS
Một bộ sưu tập tiền xu cổ được coi là có giá trị phải gồm không
ít
hơn
Z

0
đồng tiền
vàng,
S
0
đồng tiền
bạc và
M


0
đồng tiền đồng. Bộ
sưu
tập
ban
đầu
của Alibaba có một
số
lượng
nhất
định các
đồng tiền
vàng, bạc và đồng nhưng chưa phải là một bộ sưu tập có giá trị. Tại Trụ sở của Hiệp hội những người
sưu tầm tiền cổ có
đặt
một máy
đổi
tiền
để
giúp hội viên
đổi được
các
bộ
sưu tập có giá trị. Tuy nhiên,
máy
đổi c
h

hỗ

trợ
việc đổi
tiền trọn gói theo quy
tắc đổi
gói ( Z
1
, S
1
, M
1
)
lấy
gói ( Z
2
, S
2
, M
2
)
đồng
tiền.
Các quy tắc đổi tiền khác nhau từng đôi một, được gán số hiệu tuần tự 1,2,3, . . . và được công
bố trước. Hội viên có thể tạo gói tiền
thích
hợp từ bộ sưu tập của mình để thực hiện việc đổi tiền.
Các đồng tiền nhận được sau mỗi lần đổi được gộp lại với các
đồng
tiền mà hội viên đang có
để
thành một bộ sưu tập mới và có thể được sử dụng

để
đổi trong những lần sau nếu cần. Số lần đổi
không hạn chế, tuy nhiên, là người thực dụng, Alibaba luôn cố gắng giảm tới mức tối đa số lần đổi
tiền. Mặt khác,
để
ngăn chặn việc
đầu
cơ, Hiệp hội quy định, trong mọi thời
điểm,
mỗi hội viên không
được
giữ
quá 4
đồng
tiền mỗi loại và không
được
phép
đổi
tiếp khi đã
đổi được
một bộ sưu tập có giá
trị.
Yêu cầu: Cho biết số lượng
Z

,

S

,

M các đồng tiền vàng, bạc, đồng mà Alibaba có ban
đầu
và các quy
tắc đổi tiền. Hãy chỉ ra tất
cả
các bộ sưu tập tiền cổ có giá trị mà Alibaba có
thể
có được sau một số
lần
đổi không vượt quá k cho trước.
Dữ liệu: Vào
từ
file văn bản COLLECT.INP.

Dòng đầu ghi số nguyên dương
k
(k


1000)
; dòng t
h

2 ghi 6 số nguyên không
âm
Z

,

S


,
M
,

Z

0
,

S

0
,

M
0
(0

Z

,

S

,
M
,

Z


0
,

S

0
,

M
0

4) ;

Các dòng tiếp theo mỗi dòng ghi 6 số nguyên không âm
tắc đổi
tiền
(
0
≤ Z
1
, Z
2
, S
1
, S
2
, M
1
, M

2

4 ).
Z
1
, S
1
, M
1
, Z
2
, S
2
, M
2
xác định một
quy
Kết quả: Đưa ra file văn bản COLLECT.OUT. Nếu không tồn tại cách đổi
để
có được bộ sưu tập có
giá trị, file kết
quả
chỉ gồm một số -1. Trong trường hợp ngược lại, dòng
đầu
ghi số v là số các bộ tiền
cổ có giá trị mà Alibaba có thể đổi được. Dòng t
h

i trong v dòng tiếp theo ghi 4
s



nguyên
Z

i
,
S
i
,

M

i
,

k
i

tả
bộ sưu tập có giá trị t
h

i và số lần
đ

i
k
i
ít

nhất không vượt quá k cần thực hiện để

được
bộ sưu tập ấy.
Các số trên một dòng của file
dữ
liệu và file kết
quả đặt
cách nhau
ít
nhất một dấu cách.
Ví dụ:
COLLECT.INP COLLECT.OUT
2
4 0 1 3 3 3
1 0 1 1 1 1
2 0 1 1 3 3
1
3 3 3 1
h tt p :// vno i . i nfo Olympic tin học Việt Nam
Bài 4. Khuôn thép Tên chương trình: STEEL.PAS
Để
chu
N
n
bị cho Lễ hội kỷ niệm 30 năm ngày Chiến dịch Hồ
Chí
Minh toàn thắng, giải phóng miền
Nam, thống nhất
đất

nước, người ta cần gia công các loại khuôn thép có hình dạng là các hình đa giác
lồi M đỉnh. Mỗi khuôn thép được thiết
kế
trên một tấm thép cũng có hình dạng là một hình đa giác lồi
N đỉnh, không có cạnh nào của khuôn thép nằm gọn trên một cạnh của tấm thép. Để tiện cho việc gia
công, khuôn thép được vẽ sao cho hai đường thẳng chứa hai cạnh không kề nhau của nó không cắt
nhau ở bên trong tấm thép.
Công việc
chính
cần làm trong quá trình gia công là sử dụng máy cắt
để
cắt được khuôn thép từ tấm
thép ra. Rõ ràng là cần phải thực hiện M nhát cắt. Mỗi nhát cắt được thực hiện bằng cách chọn một
cạnh nào đó của khuôn thép và cắt theo đường thẳng
ch

a
cạnh ấy chia tấm thép thành hai
ph

n,

m

t
phần
ch

a
khuôn thép cần gia công. Chi

phí
cắt khuôn thép là tổng chiều dài của các
đường
cắt.
Trên hình 1 và 2, tấm thép là t

giác được tô nhạt, khuôn thép là hình vuông được tô bằng
các

g

ch
đậm.
Các nét gạch
đ

t là các
đường
cắt với tổng chi
phí bằng
6.5
đ
ơ
n
v

.
Yêu cầu: Cho biết hình dạng tấm thép và khuôn thép cần gia công. Hãy tìm phương án cắt khuôn thép
có chi
phí

nhỏ nhất.
Dữ liệu: Vào từ file văn bản STEEL.INP: Dòng đầu ghi số
N
(3

N


2000)
là số đỉnh của tấm
thép; N dòng tiếp theo, mỗi dòng ghi 2 số thực x và y
(

10
4

<
x, y
<
10
4
) , là toạ độ N đỉnh của
tấm thép được liệt kê theo chiều kim đồng hồ bắt đầu từ một đỉnh nào đó; dòng tiếp theo
ghi số
M (3

M


2000)

là số đỉnh của khuôn thép; cuối cùng là M dòng, mỗi dòng ghi 2 số thực x và
y
(

10
4

<
x, y
<

10
4
)
là toạ độ M đỉnh của khuôn thép được liệt kê theo chiều kim đồng hồ bắt
đầu
từ
một đỉnh nào
đó.
Các
số
trên một dòng cách nhau
ít nhất
một
dấu
cách.
Kết quả: Đưa ra file văn bản STEEL.OUT chi
phí
nhỏ nhất tìm được với
độ chính

xác tới 4
chữ
số sau
dấu chấm thập phân.
Ví dụ:
STEEL.INP STEEL.OUT
4 6.5000
2 1
2 5
5 3.5
5 2
4
3 3
3 4
4 4
h tt p :// vno i . i nfo Olympic tin học Việt Nam
4 3
Bang
B
Bài 1. Bong goi san phâm Ten file chương trlnh: ZXY.PAS

đầu
ra của một dây chuyền sản xuất trong nhà máy ZXY có một máy xếp tự động. Sau khi kết thúc
việc gia công trên dây chuyền, các sản
ph
N
m
sẽ được xếp vào các hộp có cùng dung lượng M. Sản
ph
N

m
rời khỏi dây chuyền được xếp vào hộp đang mở (khi bắt
đầu
ca làm việc có một hộp rỗng được
mở sẵn) nếu như dung lượng của hộp còn
đủ để
ch

a
sản
ph
N
m.
Trong trường hợp ngược lại,
máy
s

tự động đóng nắp hộp hiện tại, cho xuất xưởng rồi mở một hộp rỗng mới
để
xếp sản
ph
N
m
vào.
Trong một ca làm việc có n sản
ph
N
m
đánh số
từ

1
đến
n theo đúng t
h


tự
mà chúng rời khỏi dây
chuyền. Sản ph
N
m
t
h

i có trọng lượng là a
i
, i = 1, 2, …, n. Ban Giám đốc nhà máy qui định rằng
sản
ph
N
m
xuất xưởng của mỗi ca làm việc phải
được
xếp vào trong không quá k hộp.
Yêu cầu: Hãy giúp người quản đốc của ca làm việc xác định giá trị M nhỏ nhất sao cho số hộp mà
máy
tự động
cần
sử
dụng

để
xếp dãy n sản
ph
N
m
xuất xưởng của ca không vượt quá số k cho trước.
Dữ liệu: Vào
từ
file văn bản ZXY.INP:

Dòng
đầu
tiên
ch

a
hai số nguyên n và k,
(1≤
k

n

15000);

Dòng t
h


i trong n dòng ti
ế

p theo
ch

a
s

nguyên d
ươ
ng a
i
(a
i

30000),
i =1, 2, …, n.
Các số trên một dòng cách nhau
ít
nhất một dấu cách.
Kết qua: Ghi ra file ZXY.OUT một số nguyên duy nhất là dung lượng của hộp.
Ví dụ:
ZXY.INP ZXY.OUT
9 4 5
1
1
1
3
2
2
1
3

1
Bài 2. Chữ số Ten chương trlnh: DIGIT.PAS
Cho xâu M không quá 127 ký tự lấy từ tập F = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}và không
bắt
đầu bằng

tự
0. Gọi S là xâu với giá trị ban
đầu
là xâu M.
Người ta biến đổi M theo quy tắc sau: đếm số lần xuất hiện các ký tự 0, 1, 2, . . . , F, gọi K
i
là số lần
xuất hiện ký tự i (với i lần lượt là 0, 1, 2, . . . F). Với các K
i

0 người ta viết liên tiếp xâu biểu diễn số
K
i
trong cơ số 16 và ký tự i. Xâu kết
quả
thu được là giá trị mới của M. Sau mỗi lần biến đổi người ta
lại viết tiếp M vào sau S.

dụ, với M = '150A', S nhận giá trị ban
đầu
là '150A'.
Sau lần biến đổi t
h


nhất ta có M là '1011151A' và
S
='150A1011151A'.
Sau lần biến đổi t
h

2 ta có M là '1051151A' và
S

='150A1011151A1051151A'.
Sau lần biến đổi t
h

3 ta có M là '1041251A' và S =
‘150A1011151A1051151A1041251A’.
Yeu cầu: Cho xâu M, số lần biến đổi L ( 0

L

10
7
) và X là một ký tự từ tập F. Hãy
đếm
số lần
xuất hiện X trong S thu
được
sau L lần biến đổi M.
Dữ liệu: Vào
từ
file văn bản DIGIT.INP :


Dòng t
h

nhất
ch

a
xâu M,

Dòng t
h

2
ch

a
số nguyên L

Dòng t
h

3
ch

a

tự
X.
Kết quả: Đưa ra file văn bản DIGIT.OUT một số nguyên - số lần xuất hiện

X.
Ví dụ:
DIGIT.INP DIGIT.OUT
150A 1
3
2
Bài 3. Bổi đất Ten file chương trlnh: LAND.PAS
Hai bộ lạc Anpha và Beta sống rất hoà thuận với nhau. Một phần ranh giới của hai bộ lạc là một
đường gấp khúc không tự cắt. Đường gấp khúc nhận được bằng cách lần lượt nối N
điểm
đôi một
khác nhau
A
1

, A
2
, ..., A
N
.
Điểm
A
i
được xác định bởi hoành độ x
i
và tung độ y
i
( x
i
là các số nguyen thoả mãn

điều
kiện:
x
i

x
i

+
1

). Ph

n
đấ
t
c

a b

l

c Anpha n

m

phfa
tren
đườ
ng

g

p khúc.
Nhân dịp năm mới, tù trưởng hai bộ lạc quyết định thay đổi
đường ranh giới cũ bằng cách xây dựng một đường cao tốc là
đường nối thẳng
từ
A
1
tới A
N
và lấy đường cao tốc này
làm
ranh giới mới. Dĩ nhien, sự thay đổi này sẽ chuyển một

số
phần đất của bộ lạc Anpha cho bộ lạc Beta và ngược lại. Hai tù
trưởng
thoả
thuận phần diện
tfch
chenh lệch do việc thay đổi
đường ranh giới
sẽ
được
điều
chỉnh trong tương lai bằng một
cách khác.
Yêu cầu: Hãy
tfnh

diện
tfch
phần đất SA của bộ lạc
Anpha
trở thành đất của bộ lạc Beta và diện
tfch
phần đất
SB của bộ lạc Beta trở thành đất của bộ lạc Anpha sau
khi
thay đổi
đường
ranh giới giữa hai bộ lạc.
Dữ liệu: Vào
từ
file văn bản LAND.INP trong đó :

Dông
đầu
ch
r
a
số
N

(
N 10000) ;

Dông t
h
r

i trong N dông tiếp theo
ch
r
a
hai số nguyen x
i

cách
(

32000


x
i
, y
i

32000)
.
y
i
đặt cách nhau
ft
nhất 1 dấu
Kết qua: Đưa ra file văn bản LAND.OUT trong đó dông t
h
r
nhất
ch

r
a

SA
, dông t
h
r
hai
ch
r
a
SB .
Kết
quả được
lấy
chfnh
xác với 4
chữ
số sau dấu chấm thập phân.
Ví dụ :
LAND.INP LAND.OUT
6 8.0000
0 0
2 4
5 1
7 11
10 8
11 11
9.0000
Bài 4. Bộ sưu tập Ten chương trlnh: COLLECT.PAS

Một bộ sưu tập tiền xu cổ được coi là có giá trị phải gồm không
ft
hơn
Z

0
đồng tiền
vàng,
S

0
đồng tiền
bạc và
M

0
đồng tiền đồng. Bộ
sưu
tập
ban
đầu
của Alibaba có một
số
lượng
nhất
định các
đồng tiền
vàng, bạc và đồng nhưng chưa phải là một bộ sưu tập có giá trị. Tại Trụ sở của Hiệp hội những người
sưu t


m
tiền cổ có
đặt
một máy
đổi
tiền
để
giúp hội vien
đổi được
các
bộ
sưu tập có giá trị. Tuy nhien,
máy
đổi
ch

hỗ
trợ
việc đổi
tiền trọn gói theo quy
tắc đổi
gói ( Z
1
, S
1
, M
1
)
lấy
gói ( Z

2
, S
2
, M
2
)
đồng
tiền.
Các quy tắc đổi tiền khác nhau từng đôi một, được gán số hiệu tuần tự 1,2,3, . . . và được công
bố trước. Hội vien có
thể
tạo gói tiền
thfch
hợp từ bộ sưu tập của mình
để
thực hiện việc đổi tiền. Số
lần đổi tiền là không hạn chế, tuy nhien,
để
ngăn chặn việc đầu cơ, Hiệp hội quy định mỗi hội vien
không được giữ quá 4 đồng tiền mỗi loại. Các đồng tiền nhận được sau mỗi lần đổi được gộp lại
với các đồng tiền mà hội vien đang có
để
thành một bộ sưu tập mới và có
thể được sử
dụng
để
đổi
trong những lần sau nếu cần.
Yeu cầu: Cho biết số lượng
Z


,

S

,
M các đồng tiền vàng, bạc, đồng mà Alibaba có ban
đầu
và các quy
tắc đổi tiền. Hãy chỉ ra một phương án đổi tiền nào đó
để
Alibaba có được bộ sưu tập có giá trị. Dữ
liệu vào
đảm
bảo luôn có phương án.
Dữ liệu: Vào
từ
file văn bản COLLECT.INP:

Dông
đầu
ghi 6 số nguyen không am
Z

,

S

,
M

,

Z

0
,

S

0
,

M
0
(0

Z

,

S

,
M
,

Z

0
,


S

0
,

M
0

4) ;

Các dông tiếp theo mỗi dông ghi 6 số nguyen không am
tiền.
Z
1
S
1
M
1
Z
2
S
2
M
2
xác định một quy tắc
đổi
Kết quả: Đưa ra file văn bản COLLECT.OUT một dông ghi dãy số hiệu các quy tắc theo t
h
r

tự đã sử
dụng trong phương án đổi tiền.
Các số tren một dông của file
dữ
liệu và file kết
quả đặt
cách nhau
ft
nhất một dấu cách.
Ví dụ:
COLLECT.INP COLLECT.OUT
4 0 1 3 3 3 3 4
1 0 1 0 2 2
0 1 1 0 0 3
2 0 1 1 2 3
1 0 0 1 1 0
h tt p :// vno i . i nfo Olympic tin hcc Việt Nam
MAXSEQ.INP MAXSEQ.OUT
4 9
2
3
2
-2
-1
Bài 1. Dãy con dài nhất
Cho day số nguyen
a
1
, a
2

, ..., a
n
.
Năm
2006
Bang
A
Day số
a
i
, a
i+1
, ..., a
i
vTi 1 i i n duqc gci là day con cüa day số da cho và khi do, i-i+1 duqc gci là d5 dài, con
i


a
k
duq
c
g
c
i là trọng lượng c
ü
a day con này.
k

=

i
Yêu cầu: Cho số nguyen p, trong số các day con cüa day số da cho co trcng luqng không nhỏ hơn p
hay tìm day con co
dộ
dài lTn nhất.
Dữ liệu: Vào
từ
file văn bân MAXSEQ.INP:

Dong
dầu
tien ghi hai số nguyen n và p cách nhau bởi dấu cách;

Dong t
h
r

i trong s

n dong ti
ế
p theo
ch
r
a
s

nguyen a
i
là s


h

ng t
h
r

i c
ü
a day s
ố d
a cho, i =
1, 2, ..., n.
Kêt qua: Ghi ra file văn bân MAXSEQ.OUT số nguyen k là dộ dài cüa day con tìm duqc (qui uTc:
nếu không co day con nào
thoâ
man
diều
kiện
dặt
ra thì k = -1) .
Ví dụ:
MAXSEQ.INP MAXSEQ.OUT
5 6
-2
3
2
-2
3
4

H
an
c
h
ê
:

Trong
t

t
c
â

các
t
es
t:
1



n



20000
;
I


a
i
I



20000
;
I

p

I



10
9
.

Co

50%

s

l
u
q
ng

t
es
t
v
T
i
n


1000.
NETPATH.INP NETPATH.OUT
2 2
2 5
6 7
0
Bài 2. Bường đi trên lưới
Cho một luTi ô vuông gồm m dong và n cột. Các dong duqc dánh số từ 1 dến m từ tren xuống duTi,
các cột duqc dánh số từ 1
dến
n từ trái qua phâi. Ô nằm ở vị
trf
dong i và cột j cüa luTi duqc gci là ô
(i,j) và khi do, i duqc gci là toạ
dộ
dong con j duqc gci là toạ
dộ
cột cüa ô này. Tren ô (i,j) cüa luTi ghi
số nguyen duơng a
ij
, i = 1, 2, ..., m; j = 1, 2, ..., n. Tren luTi da cho, từ ô (i,j) ta co

thể
di chuyển
dến
ô
(p,q) nếu các
diều
kiện sau day
duqc thoâ
man:

j < n; i p; j q và i + j < p + q;

a
ij
và a
pq
co uTc số chung lTn hơn 1.
Ta gci một cách di chuyển từ mép trái sang mép phâi cüa luTi là cách di chuyển bắt dầu từ một ô co
toạ dộ cột bằng 1 qua các ô cüa luTi tuan theo qui tắc di chuyển da neu và kết thúc ở một ô co toạ dộ
cột
bằng
n.
Yêu cầu:
Tfnh
số cách di
chuyển từ
mép trái sang mép phâi cüa luTi.
Dữ liệu: Vào
từ
file văn bân NETPATH.INP:


Dong
dầu
tien ghi 2 số nguyen duơng m, n.

Dong t
h
r
i trong số m dong tiếp theo ghi n số nguyen duơng a
i1
, a
i2
, ..., a
in
là các số tren dong
t
h
r
i cüa luTi, i = 1, 2, ..., m.
Hai số lien tiếp tren cùng một dong duqc ghi cách bởi
ft
nhất một dấu cách.
Kêt qua: Ghi ra file văn bân NETPATH.OUT số nguyen k là số luqng cách di chuyển tìm duqc, biết
rằng dữ
liệu
dâm
bâo k < 10
9
.
Ví dụ:

NETPATH.INP NETPATH.OUT
2 2
2 4
6 8
4
Han chê: Trong tất

các test: 1 < m, n 100; a
uj
30000, i=1,2,...,m; j=1,2,...,n. Co 50% số luqng
test vTi m, n 50.
Bài 3. Mang máy tính
Một hệ thống n máy
tfnh
(các máy
tfnh
duqc dánh số từ 1 dến n) duqc nối lại thành một mạng bởi m
kenh nối, mỗi kenh nối hai máy nào dó và cho phép truyền tin một chiều từ máy này
dến
máy kia. Giâ
sử s và t là hai máy
tfnh
trong mạng. Ta gci duờng truyền tin từ máy s
dến
máy t là một day các máy
tfnh
và các kenh nối chúng có dạng:
s = u
1
, e

1
, u
2
, ...,u
i
, e
i
, u
i+1
, ..., u
k-1
, e
k-1
, u
k
= t,
trong dó u
1
, u
2
, ..., u
k
là các máy
tfnh
trong mạng, e
i
– kenh truyền tin từ máy u
i
dến
máy u

i+1
(i = 1, 2,
..., k-1).
Mạng máy
tfnh
duqc gci là thông suốt nếu nhu dối vTi hai máy u, v bất kỳ ta luôn có duờng
truyền tin từ u dến v và duờng truyền tin từ v dến u. Mạng máy
tfnh
duqc gci là hầu như thông suốt
nếu nhu dối vTi hai máy u, v bất kỳ, hoặc là có
duờng
truyền tin từ u
dến
v hoặc là có
duờng
truyền tin
từ
v
dến
u.
Biết
rằng
mạng máy
tfnh
da cho là hầu nhu thông suốt nhung không là thông suốt.
Yêu cầu: Hay xác dịnh xem có thể bổ sung dúng một kenh truyền tin
dể
biến mạng da cho trở thành
thông suốt
duqc

hay không?
Dữ liệu: Vào
từ
file văn bân ONEARC.INP:

Dong
dầu
tien
ch
r
a
2 số nguyen duơng n và m.

Dong t
h
r

i trong s

m dong ti
ế
p theo mô t
â
kenh n

i t
h
r

i bao g


m hai s

nguyen d

ng u
i
, v
i
cho bi
ế
t kenh n

i t
h
r

i cho phép
truy

n
tin
t

máy u
i
dế
n
máy v
i

, i=1,2,...,m.
Các số tren cùng một dong duqc ghi cách nhau bởi dấu cách.
Kêt qua: Ghi ra file văn bân ONEARC.OUT:

Dong
dầu
tien ghi ‘YES’ nếu cau
trâ
lời là
khẳng
dịnh, ghi ‘NO’ nếu cau
trâ
lời là
phü
dịnh.

Nếu cau trâ lời là khẳng dịnh thì dong t
h
r
hai ghi hai số nguyen duơng u, v cách nhau bởi dấu
cách cho biết cần bổ sung kenh
truyền
tin
từ
máy u
dến
máy v
dể
biến mạng thành thông suốt.
Ví dụ:

ONEARC.INP ONEARC.OUT
3 2
1 2
2 3
YES
3 1
Han chê: Trong tất

các test: n 2000, m 30000.Có 50% số luqng test vTi n 200.
DEL.INP DEL.OUT
4 6 4 2 4 6
ABCDUV
BADCVU
ABCDUV
BADCVU
3
Bài 4. Xoá cặp ô
Cho một bâng hình chữ nhật
kfch
thuTc m×n ô vuông
kfch
thuTc dơn vị. Các dong duqc dánh số từ 1
dến
m, từ tren xuống duTi. Các cột duqc dánh số từ 1
dến
n, từ trái qua phâi. Ô nằm ở vị
trf
dong i và
cột j cüa bâng duqc gci là ô (i,j). Mỗi ô cüa bâng hoặc duqc
dể

trống hoặc
ch
r
a
một ký tự lấy từ tập
Σ
gồm các chữ
số từ 0
dến
9 và các chữ cái la tinh in hoa từ A
dến
Z. Mỗi ký
tập Σ xuất hiện ở không quá 4 ô trong bâng. Hai ô
ch
r
a
1
A B D
2
C 1 2
tự cüa
cùng
một ký tự duqc gci là giống nhau. Hai ô giống nhau có thể
xoá duqc nếu chúng có cạnh chung hoặc tam (giao
cüa hai duờng chéo) cüa 2 ô này có thể nối vTi nhau
3
2 1 C
4
A B D
diểm

bằng
một duờng gấp khúc gồm không quá 3 doạn thẳng dộ dài
1 2 3 4 5
6
nguyen, mỗi doạn song song vTi cạnh cüa bâng, và
m = 4, n = 6
ngoại
trừ hai ô cần xoá, duờng gấp khúc này chỉ qua các ô trống hay nằm ngoài bâng. Các ô bị xoá trở thành
ô trống. Mỗi lần xoá một cặp ô cüa
bâng
duqc gci là một buTc. Hình ben neu
vf dụ
vTi truờng hqp m =
4 và n = 6. BuTc
dầu
tien có thể xoá hai ô
ch
r
a
ký tự ‘A’ hoặc 2 ô
ch
r
a
ký tự ‘B’ hay 2 ô
ch
r
a
ký tự
‘D’. Hai ô
ch

r
a
ký tự ‘C’ chỉ có thể xoá sTm nhất ở buTc t
h
r
2, sau khi da xoá các ô
ch
r
a
‘A’. Nhu
vậy,
dể
xoá trống 2 ô (2, 1) và (1,2) cần thực hiện tối thiểu 3 buTc xoá.
Yêu cầu: Cho hai số m, n và m xau
dộ
dài n mô tâ các dong cüa bâng và hai ô khác trống (r
1
, c
1
), (r
2
,
c
2
). Hay xác dịnh số buTc
ft
nhất cần thực hiện
dể
biến dổi các ô (r
1

, c
1
) và (r
2
, c
2
) trở thành ô trống.
Dữ liệu: Vào
từ
file văn bân DEL.INP:

Dong
dầu
tien
ch
r
a
6 số nguyen m, n, r
1
, c
1
, r
2
, c
2
, hai số lien tiếp duqc ghi cách nhau bởi dấu
cách.

Dong t
h

r
i +1
ch
r
a
xau n ký tự mô tâ dong t
h
r
i cüa bâng (i = 1, 2, ..., m). Các ô trống duqc
thể
hiện
bằng
dấu chấm (‘.’).
Kêt qua: Đua ra file văn bân DEL.OUT số nguyen k là số buTc
ft
nhất tìm duqc (qui uTc: nếu không
tồn tại cách biến dổi
thoâ
man yeu cầu
dặt
ra thì k=-1).
Ví dụ:
DEL.INP DEL.OUT
4 5 2 1 1 2
ABD...
C.12..
..21C.
A.B.D.
3
Han chê: Trong tất câ các test: 0 < m


10, 0 < n

20. Có 60% số luqng test có m ≤ 8, n ≤ 10 và số luqng
các ô khác trống không quá
m

×

n
.
2
-1 9 3
-4 5 -6
7 8 9
9 7 2
SELECT.INP SELECT.OUT
3
5 5 5 5
5 5 5 5
5 5 5 5
30
Bài 1. Chọn ô
Bang B
Cho một bâng hình chữ nhật
kfch
thuTc 4×n ô vuông. Các dong duqc dánh số từ 1 dến 4, từ tren
xuống duTi, các cột duqc dánh số từ 1
dến
n từ trái qua phâi. Ô nằm tren giao cüa dong i và cột j duqc

gci là ô (i,j). Tren mỗi ô (i,j) co ghi một số nguyen a
ij
, i =1, 2, 3, 4; j =1, 2, ..., n. Một cách chcn ô là
việc xác dịnh một tập con khác rỗng S cüa tập tất

các ô cüa
bâng
sao cho không co hai ô nào trong S
co chung cạnh. Các ô trong tập S duqc gci là ô duqc chcn, tổng các số trong các ô duqc chcn duqc gci
là trcng luqng cüa cách chcn.
Ví dụ: Xét
bâng
vTi n=3 trong hình
vẽ
duTi day
1 2
3
1
2
3
4
Cách chcn cần tìm là tập các ô S = {(3,1), (1,2), (4,2), (3,3)} vTi trcng luqng 32.
Yêu cầu: Hay tìm cách chcn ô vTi trcng luqng lTn nhất.
Dữ liệu: Vào
từ
file văn bân SELECT.INP:

Dong
dầu
tien c

h
r
a số nguyen duơng n là số cột cüa bâng.

Dong t
h
r

j trong s

n dong ti
ế
p theo c
h
r
a 4 s

nguyen a
1j
, a
2j
, a
3j
, a
4j
, hai s

lien ti
ế
p cách nhau

ft
nhất một dấu cách, là 4 số tren cột j cüa bâng.
Kêt qua: Ghi ra file văn bân SELECT.OUT trcng luqng cüa cách chcn tìm duqc.
Ví dụ:
SELECT.INP SELECT.OUT
3
-1 -4 7 9
9 5 8 7
3 -6 9 2
32
Han chê: Trong tất

các test: n 10000,
I
a
ij
I

30000. Co 50% số luqng test vTi n 1000.
Bài 2. Quân tượng
Xét bàn cờ vuông
kfch
thuTc n×n. Các dong duqc dánh số từ 1 dến n, từ duTi len tren. Các cột duqc
dánh số từ 1
dến
n từ trái qua phâi. Ô nằm tren giao cüa dong i và cột j duqc gci là ô (i,j). Tren bàn cờ
co m (0

m


n) quan cờ. VTi m > 0, quan cờ t
h
r
i ở ô (r
i
, c
i
), i = 1,2,..., m. Không co hai quan cờ nào
ở tren cùng một ô. Trong số các ô con lại cüa bàn cờ, tại ô (p, q) co một quan tuqng. Mỗi một nuTc di,
từ vị
trf
dang
d
r
ng
quan tuqng chỉ co thể di chuyển dến duqc những ô tren cùng duờng chéo vTi no
mà tren
duờng
di không phâi qua các ô da co quan.
Cần phâi dua quan tuqng từ ô xuất phát (p, q) về ô
dfch
(s,t). Giâ thiết là ở ô
dfch
không co quan cờ.
Nếu ngoài quan tuqng không co quan nào khác tren bàn cờ thì chỉ co 2 truờng hqp: hoặc là không thể
tTi duqc ô
dfch,
hoặc là tTi duqc sau không quá 2 nuTc di (hình trái). Khi tren bàn cờ con co các quan
cờ khác, vấn
dề sẽ

không con dơn giân nhu vậy.
Yêu cầu: Cho
kfch
thuTc bàn cờ n, số quan cờ hiện co tren bàn cờ m và vị
trf
cüa chúng, ô xuất phát
và ô
dfch
cüa quan tuqng. Hay xác dịnh số nuTc di
ft
nhất cần thực hiện
dể
dua quan tuqng về ô
d
f
c
h
hoặc dua ra số -1 nếu
diều
này không
thể
thực hiện duqc.
Dữ liệu: Vào
từ
file văn bân BISHOP.INP:

Dong
dầu
tien c
h

r
a 6 số nguyen n, m, p, q, s, t;

N
ế
u m > 0 thì m

i dong t
h
r

i trong m dong ti
ế
p theo c
h
r
a m

t c

p s

nguyen r
i
, c
i
xác
dị
nh v


trf
quan t
h
r
i.
Hai số lien tiếp tren cùng một dong duqc ghi cách nhau
ft
nhất một dấu cách.
Kêt qua: Đua ra file văn bân BISHOP.OUT một số nguyen là số nuTc di tìm duqc.
Ví dụ:
BISHOP.INP BISHOP.OUT
8 3 7 2 1 4 3
5 4
3 4
4 7
Han chê: Trong tất

các test: 1

n

200. Co 60% số luqng test vTi n ≤ 20.
CIRARC.INP CIRARC.OUT
3 3
1 2
2 3
1 3
-1
Bài 3. Kênh xung yêu
Một hệ thống n máy

tfnh
(các máy
tfnh
duqc dánh số từ 1 dến n) duqc nối lại thành một mạng bởi m
kenh nối, mỗi kenh nối hai máy nào do và cho phép truyền tin một chiều từ máy này
dến
máy kia. Ta
gci một mạch vòng cüa mạng da cho là một day các máy
tfnh
và các kenh nối chúng co dạng:
u
1
, e
1
, u
2
, ...,u
i
, e
i
, u
i+1
, ..., u
k-1
, e
k-1
, u
k
, e
k

, u
1
trong do u
1
, u
2
, ..., u
k
là các máy
tfnh
khác nhau trong mạng, e
i
– kenh truyền tin từ máy u
i
dến máy
u
i+1
(i = 1, 2, ..., k-1), e
k
là kenh truyền tin từ máy u
k
dến
máy u
1
. Một kenh truyền tin trong mạng duqc
gci là kenh xung yếu nếu nhu bất c
r
mạch vong nào cüa mạng cũng
dều c
h

r
a no.
Yêu cầu: Hay xác dịnh tất

các kenh xung yếu cüa mạng da cho.
Dữ liệu: Vào
từ
file văn bân CIRARC.INP:

Dong
dầu
tien c
h
r
a 2 số nguyen duơng n và m.

Dong t
h
r
i trong số m dong tiếp theo mô tâ kenh nối t
h
r
i bao gồm hai số nguyen duơng u
i
, v
i
cho biết kenh nối t
h
r
i cho phép

truyền
tin
từ
máy u
i
dến
máy v
i
.
Các số tren cùng một dong duqc ghi cách nhau bởi dấu cách.
Kêt qua: Ghi ra file văn bân CIRARC.OUT:

Dong dầu tien ghi số nguyen k là số luqng kenh xung yếu trong mạng da cho. Ghi k = -1 nếu
mạng không c
h
r
a kenh xung yếu.

Nếu k>0 thì mỗi dong trong số k dong tiếp theo ghi thông tin về một kenh xung yếu tìm duqc
theo qui cách mô

giống nhu trong file
dữ
liệu vào.
Ví dụ:
CIRARC.INP CIRARC.OUT
2 2
1 2
2 1
2

1 2
2 1
Han chê: Trong tất

các test: n

1000, m 20000. Co 50% số luqng test vTi n ≤ 200.
CHANGE.INP CHANGE.OUT
4 6
ABCDUV
BADCVU
ABCDUV
BADCVU
24
Bài 4. Biên đổi bang
Cho một bâng hình chữ nhật
kfch
thuTc m×n ô vuông
kfch
thuTc dơn vị. Các dong duqc dánh số từ 1
dến m, từ tren xuống duTi. Các cột duqc dánh số từ 1 dến n, từ trái qua phâi. Mỗi ô cüa bâng hoặc
duqc
dể
trống hoặc c
h
r
a một ký tự lấy từ tập Σ gồm các chữ
số từ 0
dến
9 và các chữ cái la tinh in hoa từ A

dến
Z. Hai ô
c
h
r
a cùng một ký tự duqc gci là giống nhau. Mỗi ký tự
tập Σ xuất hiện ở không quá 4 ô trong bâng. Hai ô giống
1
A B D
2
C 1 2
cüa
nhau co thể xoá duqc nếu chúng co cạnh chung hoặc co thể
nối các tam (giao diểm cüa hai duờng chéo) cüa chúng
nhau bằng một duờng gấp khúc gồm không quá 3 doạn
thẳng dộ dài nguyen, mỗi doạn song song vTi cạnh cüa
bâng và ngoại trừ hai ô cần xoá, duờng gấp khúc chỉ qua
3
2 1 C
4
A B D
1 2 3 4 5
6
m = 4, n =
6
vTi
các
ô trống hay nằm ngoài bâng. Các ô bị xoá trở thành ô trống. Mỗi lần xoá một cặp ô cüa bâng duqc gci
là một buTc. Hình ben neu
vf

dụ vTi truờng hqp m = 4 và n = 6. BuTc
dầu
tien co thể xoá hai ô c
h
r
a
ký tự ‘A’, tiếp theo, lần luqt xoá các cặp ô c
h
r
a ‘B’, c
h
r
a ‘C’ và cặp ô c
h
r
a ‘D’. Ở
vf
dụ này, sau khi
thực hiện 4 buTc xoá co thể, trong
bâng
con lại 4 ô không
thể
xoá duqc.
Yêu cầu: Cho m, n và m xau dộ dài n mô tâ các dong cüa bâng. Hay xác dịnh số luqng ô lTn nhất co
thể
xoá duqc.
Dữ liệu: Vào
từ
file văn bân CHANGE.INP:


Dong
dầu
tien c
h
r
a 2 số nguyen m, n duqc ghi cách nhau bởi dấu cách.

Dong t
h
r
i+1 c
h
r
a xau n ký tự mô

dong t
h
r
i cüa bâng (i = 1, 2, ..., m). Các ô trống duqc thể
hiện
bằng
dấu chấm (‘.’).
Kêt qua: Đua ra file văn bân CHANGE.OUT một số nguyen là số luqng ô lTn nhất co
thể
xoá duqc.
Ví dụ:
CHANGE.INP CHANGE.OUT
4 5
ABD...
C.12..

..21C.
A.B.D.
8
Han chê: Trong tất

các test: 0 < m

10, 0 < n

10. Co 60% số luqng test co m

5, n

6 và số
luqng các ô khác trống không quá
m

×

n
.
2
Năm
2007
Bài 1. Dãy con không giam dài nhất (6 diểm)
Cho day số nguyen duơng a
1
, a
2
, ..., a

n
.
Day số
a
i
, a
i+1
, ..., a
j
th

a man a
i
≤ a
i+1
≤ ... ≤ a
j
,
vTi 1

i

j

n duqc gci là dãy con không giảm cüa day số da cho và khi do số j-i+1 duqc gci là độ
dài cüa day con này.
Yêu cầu: Trong số các day con không giâm cüa day số da cho mà các phần
tử
cüa no
dều

thuộc day số
{u
k
} xác dịnh bởi u
1
= 1, u
k
= u
k-1
+ k (k

2), hay tìm day con co
dộ
dài lTn nhất.
Dữ liệu: Vào
từ
file văn bân MAXISEQ.INP

Dong
dầu
tien c
h
r
a một số nguyen duơng n (n

10
4
);

Dong t

h
r
i trong n dong tiếp theo c
h
r
a một số nguyen duơng a
i
(a
i

10
8
) là số hạng t
h
r
i cüa
day số da cho, i = 1, 2, ..., n.
Kêt qua: Ghi ra file văn bân MAXISEQ.OUT số nguyen d là
dộ
dài cüa day con không giâm tìm duqc
(quy uTc rằng nếu không co day con nào thỏa man
diều
kiện
dặt
ra thì d = 0).
Ví dụ: Cho day số co 8 phần tử: 2, 2007, 6, 6, 15, 16, 3, 21. Các day con không giâm cüa day số da
cho mà các phần tử cüa no dều thuộc day {u
k
} là: 6, 6, 15 và 3, 21 (vì u
2

= 3, u
3
= 6, u
5
= 15, u
6
=
21). Day cần tìm là 6, 6, 15 co
dộ
dài là 3.
MAXISEQ.INP MAXISEQ.OUT
8
2
2007
6
6
15
16
3
21
3
Bài 2. Siêu thị may mắn (7 diểm)
An duqc mời tham gia tro chơi “Sieu thị may mắn” do dài truyền hình ZTV tổ c
h
r
c
.
Sieu thị duqc dặt
trong truờng quay truyền hình co n mặt hàng duqc dánh số từ 1
dến

n và mặt hàng t
h
r
i duqc niem yết
giá là c
i
dồng, i = 1, 2, ..., n. Theo thể lệ cüa tro chơi, An duqc ban tổ c
h
r
c tặng một thẻ mua hàng co
giá trị là s dồng và phâi dùng hết số tiền trong thẻ này
dể
mua hàng trong sieu thị vTi diều kiện mặt
hàng t
h
r
i chỉ duqc mua vTi số luqng nhiều nhất là m
i
, i = 1, 2, …, n. An
sẽ
là nguời thắng cuộc nếu
tìm
duqc
tổng số cách mua hàng thỏa man yeu cầu
dặt
ra và chỉ ra một cách mua hàng nếu co.
Yêu cầu: Hay giúp An trở thành nguời thắng cuộc khi cho bạn biết truTc các giá trị n, s, c
i
và m
i

(1

n

500; 1

s

10
5
; 1

c
i

10
4
; 1

m
i

100) vTi i = 1, 2, …, n.
Dữ liệu: Vào
từ
file văn bân SMARKET.INP

Dong
dầu
tien c

h
r
a hai số nguyen duơng s và n;

Dong t
h
r

i trong n dong ti
ế
p theo c
h
r
a hai s

nguyen d

ng c
i
và m
i
v
T
i i = 1, 2, …, n.
Kêt qua: Ghi ra file văn bân SMARKET.OUT

Dong
dầu
tien ghi số nguyen d là tổng số cách mua hàng tìm duqc;


Nếu d

1 thì dong t
h
r
hai ghi một cách mua hàng tìm duqc là một day n số nguyen, trong do số
hạng t
h
r
i là số luqng mặt hàng t
h
r
i mua
duqc
trong cách mua hàng này, i = 1, 2, …,
n.
Hai số lien tiếp tren một dong trong file
dữ
liệu và file kết
quâ
cách nhau
ft
nhất một dấu cách.
Ví dụ:
SMARKET.INP SMARKET.OUT
12 3
4 1
6 2
2 1
2

0 2 0
ROBOT.INP ROBOT.OUT
4
0 1 1 0
5
1 2 5 4
1 3 4 3
1 4 9 4
2 4 4 1
3 4 5 2
3
Bài 3. Robot cứu hoa (7 điểm)
Tren một mạng luTi giao thông co n nút, các nút duqc dánh số từ 1 dến n và giữa hai nút bất kỳ co
không quá một đường nối trực tiếp (duờng nối trực tiếp là một duờng hai chiều). Ta gci đường đi từ
nút s
dến
nút t là một day các nút và các
duờng
nối trực tiếp co dạng:
s = u
1
, e
1
, u
2
,..., u
i
, e
i
, u

i+1
, ..., u
k-1
, e
k-1
, u
k
= t
,
trong do u
1
, u
2
, …, u
k
là các nút trong mạng luTi giao thông, e
i

duờng
nối trực tiếp giữa nút u
i
và u
i+1
(không co nút u
j
nào xuất hiện nhiều hơn một lần trong day tren, j = 1, 2, …, k).
Biết
rằng
mạng luTi giao thông
duqc

xét luôn co
ft
nhất một
duờng
di
từ
nút 1
dến
nút n.
Một robot c
h
r
a
dầy
bình vTi w dơn vị năng luqng, cần di từ trạm c
r
u
hoâ
dặt
tại nút 1
dến
nơi xây ra
hoâ
hoạn ở nút n, trong thời gian
ft
nhất co thể. Thời gian và chi
phf
năng luqng
dể
robot di tren duờng

nối trực tiếp từ nút i
dến
nút j tuơng
r
ng
là t
ij
và c
ij
(1

i, j

n). Robot chỉ co thể di duqc tren duờng
nối trực tiếp từ nút i dến nút j nếu năng luqng con lại trong bình c
h
r
a không
ft
hơn c
ij
(1

i, j

n).
Nếu robot di dến một nút co trạm tiếp năng luqng (một nút co thể co hoặc không co trạm tiếp năng
luqng) thì no tự dộng duqc nạp
dầy
năng luqng vào bình c

h
r
a vTi thời gian nạp coi nhu không dáng
kể.
Yêu cầu: Hay xác dịnh giá trị w nhỏ nhất
dể
robot di duqc tren một duờng di từ nút 1
dến
nút n trong
thời gian
ft
nhất.
Dữ liệu: Vào
từ
file văn bân ROBOT.INP

Dong
dầu
tien c
h
r
a một số nguyen duơng n (2

n

500);

Dong t
h
r

hai c
h
r
a n số, trong do số t
h
r
j bằng 1 hoặc 0 tuơng
r
ng
ở nút j co hoặc không co trạm
tiếp
năng
luqng (j = 1, 2, …, n);

Dong t
h
r
ba c
h
r
a số nguyen duơng m (m

30000) là số duờng nối trực tiếp co trong mạng luTi
giao thông;

Dong t
h
r
k trong số m dong tiếp theo c
h

r
a 4 số nguyen duơng i, j, t
ij
, c
ij
(t
ij
, c
ij

10
4
) mô tâ
duờng
nối trực tiếp
từ
nút i
dến
nút j, thời gian và chi
phf năng
luqng tuơng
r
ng.
Hai số lien tiếp tren một dong trong file
dữ
liệu cách nhau
ft
nhất một dấu cách.
Kêt qua: Ghi ra file văn bân ROBOT.OUT một số nguyen duơng w tìm duqc.
Ví dụ:

5,
2
4,
9,
1
4
4,
3
5,
Nút 2 và nút 3 có trạm tiếp năng lượng
Năm
2008
Bài 1. Trò chơi với dãy số (6 diểm)
Hai bạn hcc sinh trong lúc nhàn rỗi nghĩ ra tro chơi sau day. Mỗi bạn chcn truTc một day số gồm n số
nguyen.
Giâ sử
day số mà bạn t
h
r
nhất chcn là
b
1
, b
2
, ..., b
n
con day số mà bạn t
h
r
hai chcn là

c
1
, c
2
, ..., c
n
.
Mỗi luqt chơi mỗi bạn dua ra một số hạng trong day số cüa mình. Nếu bạn t
h
r
nhất dua ra số hạng b
i
(1

i

n), con bạn t
h
r
hai dua ra số hạng c
j
(1

j

n) thì giá cüa luqt chơi do
sẽ

I
b

i
+ c
j
I
.
Vf
dụ: Giâ sử day số bạn t
h
r
nhất chcn là 1, - 2; con day số mà bạn t
h
r
hai chcn là 2, 3. Khi do các
khâ năng co thể cüa một luqt chơi là (1, 2), (1, 3), (-2, 2), (-2, 3). Nhu vậy, giá nhỏ nhất cüa một luqt
chơi trong số các luqt chơi co
thể
là 0 tuơng
r
ng
vTi giá cüa luqt chơi (-2, 2).
Yêu cầu: Hay xác dịnh giá nhỏ nhất cüa một luqt chơi trong số các luqt chơi co thể.
Dữ liệu: Vào
từ
file văn bân SEQGAME.INP:

Dong
dầu
tien c
h
r

a số nguyen duơng n (n

10
5
);

Dong t
h
r
hai c
h
r
a day số nguyen b
1
, b
2
, ..., b
n
(
I
b
i
I


10
9
, i = 1, 2, ..., n);

Dong t

h
r

ba c
h
r
a day s

nguyen c
1
, c
2
, ..., c
n
(
I
c
j
I


10
9
, j = 1, 2, ..., n).
Hai số lien tiếp tren một dong duqc ghi cách nhau bởi dấu cách.
Kêt qua: Ghi ra file văn bân SEQGAME.OUT giá nhỏ nhất tìm duqc.
Ví dụ:
SEQGAME.INP SEQGAME.OUT
2
1 -2

2 3
0
Ràng buộc: 60% số tests
r
ng
vTi 60% số
diểm
cüa bài co 1

n

1000.
Bài 2. Lò cò (7 điểm)
Nhây lo co là tro chơi dan gian cüa Việt Nam. Nguời tren hành tinh X cũng rất
thfch
tro chơi này và
hc da câi bien tro chơi này nhu sau: Tren mặt phẳng
vẽ
n vong tron duqc dánh số từ 1
dến
n. Tại vong
tron i nguời ta diền số nguyen duơng a
i
. Hai số tren hai vong tron tuỳ ý không nhất thiết phâi khác
nhau. Tiếp
dến
nguời ta
vẽ
các mũi ten, mỗi mũi ten huTng từ một vong tron
dến

một vong tron khác.
Quy tắc vẽ mũi ten là: Nếu co ba số a
i
, a
j
, a
k
thoâ man: a
k
=a
i
+a
j
thì vẽ mũi ten huTng từ vong tron i
dến vong tron k và mũi ten huTng từ vong tron j dến vong tron k. Nguời chơi chỉ duqc di chuyển từ
một vong tron dến vong tron khác nếu co mũi ten từ vong tron xuất phát huTng dến vong tron
d
f
c
h.
Nguời chơi co thể xuất phát từ một trong số các vong tron, di chuyển theo các mũi ten da vẽ
dể
dến
các vong tron khác. Nguời
thắng
cuộc
sẽ
là nguời tìm
duqc
cách di chuyển qua nhiều vong tron nhất.

Vf
dụ: VTi 5 vong tron và các số trong vong tron là 1, 2, 8, 3, 5, tro chơi duqc trình bày trong hình
duTi day:
1
3
8
2
5
Khi do co thể di chuyển duqc nhiều nhất qua 4 vong tron (tuơng
r
ng
vTi duờng di chuyển duqc tô
dậm
tren hình vẽ).
Yêu cầu: Hay xác dịnh xem trong tro chơi mô tâ ở tren, nhiều nhất co thể di chuyển duqc qua bao
nhieu vong tron.
Dữ liệu: Vào
từ
file văn bân JUMP.INP:

Dong
dầu
tien c
h
r
a số nguyen n (3

n

1000);


Dong t
h
r
hai c
h
r
a day số nguyen duơng a
1
, a
2
, ..., a
n
(a
i

10
9
, i = 1, 2, ..., n).
Hai số lien tiếp tren một dong duqc ghi cách nhau bởi dấu cách.
Kêt qua: Ghi ra file văn bân JUMP.OUT số luqng vong tron tren
duờng
di
chuyển
tìm duqc.
Ví dụ:
JUMP.INP JUMP.OUT
5
1 2 8 3 5
4

Ràng buộc: 60% số tests
r
ng
vTi 60% số
diểm
cüa bài co 3

n

100.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×