1. Trang chủ
  2. » Giáo án - Bài giảng

đề thi tin IOI năm 2003

3 218 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 35 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhiệm vụ của bạn là xác định một tập hợp các lệnh sao cho các Robot thoát khỏi mê cung mà không bị lính canh bắt giữ.. Mỗi Robot di chuyển một ô theo hướng của lệnh, trừ khi Robot va phả

Trang 1

Đề thi IOI 2003 - Amazing Robots

Bài toán: Những Robot kỳ lạ (Amazing robots)

Bạn là chủ nhân của hai Robot được đặt trong hai mê cung hình chữ nhật khác nhau Ô (1,1) trong từng mê cung là ô vuông ở góc trái − trên hay góc tây − bắc Mê cung i (i=1,2) có một tập hợp Gi (0≤Gi≤10) lính canh nhằm cố gắng chặn bắt các Robot bằng cách đi tuần trên những đường thẳng Nhiệm vụ của bạn là xác định một tập hợp các lệnh sao cho các Robot thoát khỏi

mê cung mà không bị lính canh bắt giữ

Tại thời điểm bắt đầu mỗi phút, bạn phát đi cùng một lệnh đến cả hai Robot Mỗi lệnh chỉ ra hướng di chuyển (bắc, nam, đông, tây) Mỗi Robot di chuyển một ô theo hướng của lệnh, trừ khi Robot va phải tường, trong trường hợp này Robot không di chuyển tại phút đó Robot thoát khỏi

mê cung bằng cách đi ra khỏi mê cung đó Robot bỏ qua lệnh sau khi nó đã thoát khỏi mê cung Các lính canh di chuyển một ô lúc bắt đầu từng phút, cùng thời điểm như các Robot Mỗi lính canh xuất phát tại một ô nhất định, quay mặt theo hướng di chuyển và đi về phía trước một ô trong một phút cho đến khi đi đến ô cuỗi của quãng đường đi tuần Sau đó lính canh quay trở lại

và di chuyển theo chiều ngược lại về ô xuất phát, tại đó anh ta quay lại và tiếp tục tuần tra cho đến khi robot đã thoát khỏi mê cung

Các lính canh sẽ không phải đi qua tường hay ra ngoài mê cung Mặc dù các đường tuần tra có thể chồng lên nhau nhưng không có hai lính canh nào va vào nhau khi di chuyển, họ cũng không bao giờ đến cùng một ô cùng lúc, họ cũng không đổi chỗ cho nhau trong cùng một phút Các lính canh trong một mê cung không xuất phát tại cùng một ô như Robot của mê cung đó

Lính canh bắt được robot nếu nó di chuyển đến cùng một ô như robot trong cùng một phút, hoặc nếu lính canh và robot đổi chỗ cho nhau trong một phút

Cho hai mê cung (kích thước không vượt quá 20x20) và các ô xuất phát của robot, đường tuần tra của lính canh trong mỗi mê cung Hãy xác định một tập hợp các lệnh theo đó các Robot sẽ thoát khỏi mê cung Thời gian nhỏ nhất là thời gian Robot cuối cùng thoát khỏi mê cung Nếu các Robot ra khỏi mê cung ở những thời điểm khác nhau, thời điểm Robot đầu thoát ra không có ý nghĩa

INPUT: ROBOTS.IN Tập hợp các dòng đầu tiên miêu tả mê cung thứ nhất cùng các trạng thái

của nó Tập hợp các dòng tiếp theo miêu tả mê cung thứ hai và các trạng thái của nó

- Dòng thứ nhất bao gồm hai số nguyên R1, C1 cách nhau bởi dấu trống, cho biết số dòng và số cột của mê cung 1

- Tiếp theo R1 dòng bao gồm C1 ký tự chỉ ra cấu tạo của mê cung Vị trí của Robot được cho bởi

ký tự ″X″ Dấu ″ ″ biểu thị một ô trống, dấu ″#″ biểu thị một bức tường Mỗi mê cung chỉ chứa một Robot

- Sau cấu tạo của mê cung là một dòng chứa một số nguyên G1 chỉ số lính canh của mê cung thứ nhất (0≤G1≤10)

- Tiếp sau đó là G1 dòng miểu tả đường đi tuần của lính canh bao gồm 3 số nguyên và một ký

tự Hai số nguyên đầu tiên cho biết tọa độ hàng, cột ô xuất phát của lính canh Số nguyên thứ 3 chỉ ra số ô (2 4) trên đường tuần tra Ký tự cuối cùng cho biết hướng quay mặt ban đầu của lính canh: ″N″, ″S″, ″E″, ″W″(bắc, nam, đông, tây)

Các miêu tả cho mê cung thứ hai tương tự như đối với mê cung thứ nhất

Output: Robots.out Dòng đầu tiên của tệp output bao gồm một số nguyên K (K≤10000) cho

biết số lệnh để cả hai Robot ra khỏi mê cung Nếu tồn tại các lệnh như vậy, số lệnh ít nhất không vượt quá 10000 Tiếp theo là K dòng liệt kê các lệnh, mỗi dòng một lệnh và là một trong 4 ký tự

″N″, ″S″, ″E″, ″W″ Nếu không tìm được tập hợp lệnh, in ra một dòng duy nhất chứa

″-1″

Cả hai Robot cần thoát khỏi mê cung ở cuối các lệnh Lệnh cuối cùng sẽ làm cho ít nhất một Robot thoát khỏi mê cung chứa nó Nếu nhiều lệnh làm cho Robot ra khỏi mê cung trong thời

Trang 2

gian nhỏ nhất, chúng đều được chấp nhận

i> Ví dụ

input:

5 4

####

#X.#

# #

#

##.#

1

4 3 2 W

4 4

####

#

#X.#

####

0

Hình minh hoạ

output:

8

X

G

X

N

S

E

W

Hạn chế:

Thời gian chạy chương trình là 2 giây

Bộ nhớ: 64MB

Cho điểm:

Nếu không tồn tại các lệnh di chuyển, bạn không được điểm Ngược lại, điểm cho như sau:

Độ chính xác: 20% số điểm

Tệp output cho mỗi bộ test là hợp lệ nếu nó đúng định dạng, không chứa nhiều hơn 10000 lệnh

và các lệnh cho phép Robot ra khỏi mê cung Lệnh cuối cùng cho phép ít nhất một Robot ra khỏi

mê cung

Trang 3

Độ tối ưu: 80% số điểm

Tệp output của mỗi bộ test được xem như tối ưu nếu nó hợp lệ và không có chuỗi lệnh nào ngắn hơn nữa hợp lệ Một chương trình mà chuỗi lệnh không tối ưu sẽ nhận 0 điểm cho độ tối ưu

Ngày đăng: 06/07/2014, 22:00

HÌNH ẢNH LIÊN QUAN

Hình minh hoạ - đề thi tin IOI năm 2003
Hình minh hoạ (Trang 2)

TỪ KHÓA LIÊN QUAN

w