1. Trang chủ
  2. » Khoa Học Tự Nhiên

Đề thi toán quốc tế tháng 2-6 2000

8 471 0
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

Tiêu đề Palindrome
Chuyên ngành Toán
Thể loại Đề thi
Năm xuất bản 2000
Định dạng
Số trang 8
Dung lượng 1,15 MB

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

Nội dung

Walls Bài toán Ở một đất nước, các bức tường thành được xây dựng sao cho mỗi bức tường sẽ nối hai thành phố.. Do đó, đất nước này được chia thành các vùng mà khi đi từ vùng này sang

Trang 1

1 Palindrome

Bài toán

Palindrome là một chuỗi đối xứng nghĩa là một chuỗi đọc giống nhau nếu ta bắt đầu từ trái sang phải hay từ phải sang trái Hãy viết chương trình từ một chuỗi cho trước xác định số ký tự ít nhất được chèn vào chuỗi để được một palindrome

Ví dụ, chèn 2 ký tự vào chuỗi "Ab3bd" có thể biến nó thành một palindrome ("dAb3bAd" hoặc

"Adb3bdA") nhưng chèn dưới 2 ký tự thì không thể biến chuỗi trên thành một Palindrome

Input

Tệp input có tên là PALIN.IN Dòng đầu tiên chứa 1 số nguyên chỉ độ dài của chuỗi N với 3<=N<=5000 Dòng thứ hai chứa 1 chuỗi ký tự có độ dài N Chuỗi chỉ gồm các ký tự viết hoa từ

‘A’ đến ‘Z’, ký tự thường từ ‘a’ đến ‘z’ và các chữ số từ ‘0’ đến ‘9’ Các ký tự thường và ký tự hoa được hiểu khác nhau

Output

Tệp output có tên PALIN.OUT Dòng đầu tiên chứa 1 số nguyên chỉ số ký tự ít nhất cần chèn bổ xung

Ví dụ

Input và Output

Trang 2

5 Walls

Bài toán

Ở một đất nước, các bức tường thành được xây dựng sao cho mỗi bức tường sẽ nối hai thành phố Các bức tường thành không cắt lẫn nhau Do đó, đất nước này được chia thành các vùng mà khi

đi từ vùng này sang vùng khác thì phải đi qua một thành phố hoặc đi ngang qua tường thành Với

2 thành phố bất kỳ A và B, có nhiều nhất một bức tường thành với một đầu ở thành phố A và một đầu ở thành phố B và hơn nữa, có thể đi từ A đến B bằng cách đi qua một thành phố hoặc đi dọc theo một bức tường thành

Có một câu lạc bộ mà các thành viên của nó sống trong các thành phố Trong mỗi thành phố có thể có ít nhất một hoặc không có thành viên nào sống Các thành viên muốn gặp nhau ở một trong các vùng (bên ngoài các thành phố) Các thành viên đi bằng xe đạp Họ không muốn vào các thành phố vì tình hình giao thông và họ muốn đi qua số bức tường thành ít nhất Để đến chỗ gặp nhau, mỗi thành viên cần phải đi qua một số bức tường thành Họ muốn tìm một vùng phù hợp nhất với tổng số lần đi qua tường thành là nhỏ nhất

Các thành phố được đánh số từ 1 đến N trong đó N là số thành phố Trong hình 1, các nút được

đặt tên chỉ các thành phố và các đường nối các nút là các bức tường thành Giả sử có ba thành viên sống trong các thành phố 3, 6 và 9 Vùng phù hợp nhất để hội họp và các lộ trình tương ứng cho các thành viên được minh họa trong hình 2 Tổng số lần đi qua tường thành là 2: thành viên

từ thành phố số 9 phải đi qua tường thành giữa thành phố 2 và 4, và thành viên từ thành phố 6 phải đi qua tường thành giữa thành phố 4 và 7

Hãy viết chương trình từ các thành phố, các vùng và thành phố quê hương của các thành viên câu lạc bộ, hãy xác định vùng phù hợp nhất cho hội họp với tổng số lần đi qua tường thành ít nhất

Input

Tệp input có tên WALLS.IN Dòng đầu tiên chứa 1 số nguyên chỉ số vùng M với 2<=M<=200

Trang 3

sau Vùng cuối cùng là “vùng ngoài” bao quanh tất cảc các thành phố và các vùng khác, và thứ tự các thành phố theo hướng đi ngược chiều kim đồng hồ Thứ tự các vùng được gán theo số nguyên: vùng đầu tiên là 1, vùng thứ hai là 2, Chú ý, input chứa tất cả các vùng được tạo thành

từ các thành phố và tường thành gồm cả “vùng ngoài”

Output

Tệp output có tên là WALLS.OUT Dòng đầu tiên chứa 1 số nguyên chỉ số lần vượt qua ít nhất Dòng thứ hai chứa 1 số nguyên chỉ tên vùng phù hợp nhất cho hội họp Có nhiều giải pháp, chương tình chỉ cần báo cáo 1 giải pháp

Ví dụ

Input và Output

Tệp input và output tương ứng với ví dụ trên

Trang 4

4 Post Office

Bài toán

Có một tuyến đường cao tốc thẳng với nhiều làng mạc ở hai bên Đường cao tốc được biểu diễn bằng một trục nguyên và vị trí mỗi ngôi làng là một tọa độ nguyên trên trục Hai làng bất kỳ không ở cùng vị trí Khoảng cách giữa hai vị trí là hiệu của hai tọa độ nguyên đó

Bưu điện được xây dựng ở một số làng trong số đó Ngôi làng và bưu diện ở làng dó có cùng vị trí Để xây dựng các bưu điện, phải chọn các vị trí của chúng sao cho tổng khoảng cách giữa mỗi ngôi làng và bưu điện gần ngôi làng đó nhất là ngắn nhất

Hãy viết chương trình từ vị trí một số ngôi làng và bưu điện cho trước tính tổng khoảng cách nhỏ nhất có thể giữa mỗi ngôi làng với bưu điện gần ngôi làng đó nhất, đồng thời xác dịnh vị trí xây dựng các bưu dđện

Input

Tệp input có tên POST.IN Dòng đầu tiên chứa 2 số nguyên: số thứ nhất chỉ số làng V với 1<=V<=300 và số thứ hai chỉ số bưu điện P với 1<=P<=30, P<=V Dòng thứ hai chứa V số nguyên theo thứ tự tăng dần V số nguyên đó là vị trí các ngôi làng Mỗi vị trí là X với 1<=X<=10000

Output

Tệp output có tên POST.OUT Dòng đầu tiên chứa một số nguyên S là tổng các khoảng cách giữa mỗi ngôi làng với bưu điện gần ngôi làng đó nhất Dòng thứ hai chứa P số nguyên theo thứ

tự tăng dần Các số nguyên đó chỉ vị trí các ngôi làng khác nhau sẽ được xây bưu điện Có thể có nhiều giải pháp khác nhau, chương trình chỉ cần báo cáo một giải pháp

Ví dụ

Input và Output

Trang 5

3 Median Strength

Bài toán

Một thí nghiệm không gian mới liên quan đến N vật thể được đánh số từ 1 đến N Biết rằng là N là

số lẻ Mỗi vật thể có độ bền khác nhau được biểu diễn bằng một số tự nhiên Độ bền được ký hiệu

là Y với 1<=Y<=N Độ bền trung bình của vật thể X được tính bằng bình quân độ bền của tất cả các đồ vật có độ bền lớn hơn và nhỏ hơn X Hãy viết chương trình xác định vật thể với độ bền

trung bình

Thư viện

Cho trước một thư viện có tên device với ba thủ tục sau:

• GetN không đối số được gọi một lần lúc đầu; thủ tục sẽ trả lại giá trị của N

• Med3 được gọi cùng ba vật thể khác nhau như các đối số; thủ tục trả lại nhãn cho vật thể với

độ bền trung bình

• Answer được gọi một lần khi kết thúc với nhãn vật thể như đối số; thủ tục báo cáo nhãn của

vật thể X với độ bền trung bình và kết thúc quá trình xử lý của chương trình

Thư viện device tạo ra hai tệp văn bản: MEDIAN.OUT và MEDIAN.LOG Dòng đầu tiên của

Dòng thứ hai chứa 1 số nguyên chỉ số lần chương trình của bạn gọi thủ tục Med3 Đối thoại giữa chương trình của bạn và thư viện đượcc ghi lại trong tệp MEDIAN.LOG

Hướng dẫn lập trình với Pascal: kèm thêm câu lệnh nhập vào

uses device;

vào mã nguồn

Hướng dẫn lập trình bằng C/C++: dùng lệnh

trong mã nguồn, tạo một dự án MEDIAN.PRJ và bổ xung các tệp MEDIAN.C (MEDIAN.CPP)

Thử nghiệm

Bạn có thể thử nghiệm với thư viện bằng cách tạo ra một tệp văn bản DEVICE.IN Tệp này phải

chứa hai dòng Dòng đầu tiên chứa 1 số nguyên chỉ số vật thể N Dòng thứ hai chứa các số nguyên từ 1 đến N theo thứ tự số nguyeê thứ i là độ bền của vật thể có nhãn i

Ví dụ

Trang 6

Tệp DEVICE.IN ở trên mô tả ví dụ với 5 vật thể với các độ bền sau:

Dưới đây là thứ tự đúng các thủ tục được thư viện gọi ra:

1. GetN (Pascal) hoặc GetN() (C/C++) trả lại 5

2. Med3(1,2,3) trả lại 3

3. Med3(3,4,1) trả lại 4

4. Med3(4,2,5) trả lại 4

5. Answer(4)

Ràng buộc

Số vật thể N với 5<=N<=1499 và N lẻ

Số nhãn vật thể i với 1<=i<=N

Độ bền vật thể Y với 1<=Y<=N và tất cả độ bền đều khác nhau

• Tên tệp thư viện Pascal: device.tpu

• Khai báo thủ tục và hàm Pascal:

function Med3(x,y,z:integer):integer; procedure Answer(m:integer);

• Các tên tệp thư viện C/C++: device.h, device.obj

• Header của hàm C/C++:

int Med3(int x, int y, int z);

void Answer(int m);

• Số lần gọi thủ tục Med3 trong mỗi lần chạy không quá 7777 lần

• Chương trình không đọc hoặc viết vào tệp nào

Trang 7

2 Đỗ xe

Bài toán

Một bãi đổ xe có các vị trí đỗ xếp thành hàng dài Một đầu hàng gọi là đầu trái và đầu còn lại là đầu phải Hàng đỗ chứa đầy xe hơi Mỗi chiếc xe có một kiểu và có thể có nhiều chiếc xe cùng kiểu Kiểu xe được phân biệt bằng các giá trị nguyên Một nhóm công nhân quyết định thứ tự sắp xếp xe trong hàng theo thứ tự kiểu xe tăng dần từ trái sang phải bằng cách sau Cách này gọi là vòng tròn: nhóm công nhân, mỗi người lái một chiếc xe cùng lúc rời khỏi chỗ đỗ và đi đến đỗ vào

vị trí mà một chiếc xe cùng vòng tròn vừa được lái ra Có thể có một số công nhân không di chuyển xe theo vòng tròn Để thuận lợi hơn, ta chỉ xét một số ít vòng tròn

Giả sử N là số xe hơi và W là số công nhân Hãy viết chương trình từ các kiểu xe cho trước và số

công nhân, tìm cách sắp xếp xe hơi sao cho số vòng tròn cần thiết tối đa là Số vòng tròn không vượt quá

Xét ví dụ dưới Có 10 xe hơi đã đỗ thuộc các kiểu xe 1, 2, 3 và 4 với 4 công nhân Thứ tự đỗ xe ban đầu tính từ trái sang phải tính theo kiểu là

2 3 3 4 4 2 1 1 3 1

Số vòng tròn tối thiểu là 3 và số vòng tròn có thể thực hiện để thứ tự đỗ xe sau đó là:

2 1 1 4 4 2 3 3 3 1 – sau vòng 1,

2 1 1 2 4 3 3 3 4 1 – sau vòng 2 và

1 1 1 2 2 3 3 3 4 4 – sau vòng 3

Input

Tệp input có tên là CAR.IN Dòng đầu tiên chứa ba số nguyên Số nguyên đầu tiên là số xe hơi

N với 2<=N<=20000 Số thứ hai là số kiểu xe M với 2<=M<=50 Kiểu xe hơi được biểu diễn bằng các số nguyên từ 1 đến M Mỗi kiểu có ít nhất một chiếc xe hơi Số nguyên thứ ba là số công nhân W với 2<=W<=M Dòng thứ hai chứa N số nguyên, trong đó số nguyên thứ i là kiểu của xe hơi thứ i trong hàng tính từ trái sang phải

Output

Tệp output có tên là CAR.OUT Dòng đầu tiên chứa một số nguyên R chỉ số vòng tròn cần thiết trong giải pháp R dòng tiếp theo mô tả các vòng tròn theo thứ tự từ 1 đến R Trên mỗi dòng, số nguyên đầu tiên là số xe hơi C di chuyển theo vòng tròn đó Sau đó là 2C số nguyên chỉ vị trí các

xe hơi Vị trí các xe được xác định bằng từ 1 đến N bắt đầu từ đầu trái hàng Hai số đầu tiên mô tả cách di chuyển của một chiếc xe hơi: số nguyên đầu tiên là vị trí tính từ đầu trái trước khi đi vòng tròn và số thứ hai là vị trí xe hơi sau khi đi vòng tròn Hai số nguyên tiếp theo mô tả cách di chuyển của chiếc xe thứ hai, Có thể có nhiều giải pháp khác nhau cho R dòng đó, chương tình chỉ cần báo cáo một giải pháp

Ví dụ

Trang 8

Input và Output

Ngày đăng: 24/10/2013, 05:15

HÌNH ẢNH LIÊN QUAN

Các thành phố được đánh số từ 1 đến N trong đó N là số thành phố. Trong hình 1, các nút được đặt tên chỉ các thành phố và các đường nối các nút là các bức tường thành - Đề thi toán quốc tế tháng 2-6 2000
c thành phố được đánh số từ 1 đến N trong đó N là số thành phố. Trong hình 1, các nút được đặt tên chỉ các thành phố và các đường nối các nút là các bức tường thành (Trang 2)

TỪ KHÓA LIÊN QUAN

w