Ðề tài: Đề thi !
View Single Post
Old 01-01-1970, 07:00 AM   #2
Hồ sơ
tieunhoc
Administrator
 
tieunhoc's Avatar
 
Tham gia ngày: Oct 2004
Tuổi: 19
Số bài viết: 1,134
Tiền: 82858
Thanks: 92
Thanked 531 Times in 181 Posts
tieunhoc is an unknown quantity at this point
Default

Nội dung ở phía dưới có một số chỗ bị xáo trộn , các em nên tải đề về ở đây !
DeThiChuyen2002


NHA TRANG – KHÁNH HOÀ
 HỘI TIN HỌC VIỆT NAM

OLYMPIC TIN HỌC SINH VIÊN LẦN THỨ XI
KHỐI THI: CHUYÊN
Thời gian làm bài: 180 phút
Ngày thi: 26 – 04 – 2002
Nơi thi: Trường Đại học Thuỷ sản Nha Trang

Anh/chị hãy lập trình giải các bài toán sau:
BÀI 1: ĐIỀU KHIỂN ROBOT Tên chương trình: ROBOT.???
Trong cuộc thi lập trình điều khiển Robot giữa các đội sinh viên các trường đại học Ban Giám khảo cung cấp cho các đội một loại Robot có khả năng tự thay đổi hình dạng bề ngoài của nó.
Hình dạng bề ngoài của Robot được xác định bởi vào véctơ trạng thái G = (G1, G2, …, GN), các giá trị G1 thuộc khoảng [1, N] và khác nhau từng đội với mọi i.
Nói hai trạng thái GA và GB là khác nhau nếu tồn tại ít nhất một chỉ số mà GAi≠ GBi.
Sau mỗi đơn vị thời gian, véctơ G thay đổi theo một bảng quy tắc định sẵn Q, trong đó, nếu Q1 = K, thì vào thời điểm kế tiếp giá trị của Gi sẽ bằng giá trị của GK tại thời điểm hiện tại.
Ví dụ: với N = 5 và bảng biến đổi Q = ( 2, 1, 5, 3, 4) và véctơ trạng thái hiện tại G = (1, 2, 3, 4, 5), thì véctơ G ở thời điểm tiếp theo sẽ là (2, 1, 5, 3, 4).


1
2 3 4 5

2 1 5 3 4

ở thời điểm tiếp theo nữa sẽ là G = (1, 2, 4, 5, 3).
Với N cho trước (2N80), các đội phải lập trình xác định bảng biến đổi Q. Đội nào có bảng điều khiển mang lại cho Robot nhiều trạng thái khác nhau nhất từ một trạng thái bắt đầu bất kỳ là đội thắng cuộc
Yêu cầu: Xác định bảng biến đổi để thắng cuộc.
Dữ liệu: Vào từ file văn bản ROBOT.INP, gồm 1 số nguyên N.
Kết quả: Đưa ra file văn bản ROBOT.OUT:
• Dòng đầu tiên: Số nguyên M cho biết số trạng thái khác nhau mà Robot có thể mang,
• Dòng thứ 2: N số nguyên xác định bằng Q tìm được, các số khác nhau ít nhất một khoảng trắng.
Ví dụ:

ROBOT.INP ROBOT.OUT
5 6
2 1 5 3 4

BÀI 2: GHÉP SỐ Tên chương trình: NUM.???
Cho hai số tự nhiên A có N chữ số và B có M chữ số (2N,M100). Xét các số nguyên dương có các tính chất sau:
• Có N + M chữ số
• Có thể đánh dấu N chữ số trong C để các chữ số được đánh dấu (giữ nguyên trình tự xuất hiện trong C) tạo thành A và các chữ số không được đánh dấu (giữ nguyên trình tự) tạo thành B.
Yêu cầu: Hãy tìm số lớn nhất Cmax và số nhỏ nhất Cmin thoả mãn các điều kiện trên.
Dữ liệu: Vào từ file văn bản NUM.INP, gồm 2 dòng:
• Dòng đầu chứa số nguyên A.
• Dòng thứ 2 chứa số nguyên B.
Kết quả: đưa ra file văn bản NUM.OUT 2 dòng:
• Dòng đầu: chứa số nhỏ nhất Cmin tìm được
• Dòng thứ 2: chứa số lớn nhất Cmax tìm được
Ví dụ:
NUM.INP NUM.OUT
20
4181 204181
421810

Bài 3: CHIP Tên chương trình: CHIP.???
Ứng dụng công nghệ Nano, người ta đã sản xuất các con chíp với hàng triệu chân trên 1mm2. Các linh kiện được cấy trên một đường tròn có dây dẫn điện, đảm bảo 2 linh kiện bất kỳ kề nhau (trên đường tròn) đều dây dẫn nối trực tiếp. Các linh kiện được đánh số từ 1 tới N (3<N10000).
Thiết kế ban đầu được xây dựng trên cơ sở công nghệ cũ, nên mặc dù đáp ứng yêu cầu phẳng hoá đồ thị (không có đường dây dẫn giao nhau ngoài điểm chung có thể có ở tại linh kiện), nhưng nếu bố trí chúng trên đường tròn thì có thể thứ tự các linh kiện theo vị trí trên đường tròn không phải là từ 1 tới N mà là một hoán vị nào đó của các số 1, 2, …, N. Ngoài ra, ở sơ đồ cũ còn có thêm một số đường nối tạo thành những dây cung (không giao nhau). Điều này sẽ không cản trở đáng kểđã nâng cấp chất lượng linh kiện (trên thực chất, phải gọi là cụm linh kiện thì chính xác hơn), khử bỏ được các đường nối là dây cung. Các linh kiện vẫn giữ nguyên cách đánh số trước đây để tránh nhầm lẫn khi sử dụng kho tài liệu kỹ thuật số đồ sộ vốn có.
Ở thiết kế ban đầu, người ta cho biết số linh kiện N trong mạch và các cặp linh kiện (I, J), mà giữa chúng cần có đường nối trực tiếp. Dĩ nhiên, giữa hai linh kiện I, J bất kỳ có không quá một đường nối và số lượng đường nối không quá 2N-3 (Yêu cầu phẳng hoá!). Bảng thiết kế có dạng:
5
4 3
5 2
1 3
2 4
5 3
2 5
5 4 Sơ đồ cũ Sơ đồ mới
Trong bản thiết thiết kế mới, các đường nối 4 với 5 và 4 với 3 bị loại bỏ và người ta chỉ nêu trình tự bố trí chúng trên đường tròn, bắt đầu từ linh kiện 1 trở đi trở đi, cụ thể là 1 3 5 2 4.
Mọi chuyện sẽ đơn giản nếu người ta còn giữ lại được bản vẽ sơ đồ thiết kế cũ. Nhưng không may, bản vẽ này lại bị thất lạc. Ta chỉ có thể dựa trên số liệu về các đường nối trực tiếp còn lưu lại để xác định bản thiết kế mới.
Yêu cầu: từ thông tin ở bản vẽ thiết kế cũ, hãy xác định bản thiết kế mới.
Dữ liệu: vào từ file văn bản CHIP.INP chứa nội dung của bản thiết kế mới.
• Dòng đầu tiên chứa số nguyên N,
• Các dòng sau: mỗi dòng một cặp số nguyên I, J cho biết hai chân I và J được nối với nhau, 1 I, J N, I  J.
• Các số trên cùng một dòng cách nhau bởi khoảng trắng.
Kết quả: Đưa ra file văn bản CHIP.OUT mô tả nội dung bản thiết kế mới:
Đưa N dòng, mỗi dòng chứa một số nguyên xác định trình tự bố trí các linh kiện trên đường tròn, bắt đầu từ 1 trở đi theo chiều hướng đến chân có chỉ số nhỏ hơn trong số hai chân nối trực tiếp với nó.
Ví dụ:
CHIP.INP CHIP.OUT
5
4 3
5 2
1 3
4 2
5 3
1 4
5 4 1
3
5
2
4

Ghi chú: Cán bộ coi thi không giải thích gì thêm.

__________________



Có những lúc thật BUỒN nhưng người ta vẫn cứ phải CƯỜI
tieunhoc is offline   Trả Lời Với Trích Dẫn