NHA TRANG – KHÁNH HOÀ HỘI TINHỌC VIỆT NAM OLYMPIC TINHỌCSINHVIÊN LẦN THỨXI ĐỀ CHÍNH THỨC 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 sinhviê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 = (G 1 , G 2 , …, G N ), các giá trị G 1 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à GA i ≠ GB i . 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 Q 1 = K, thì vào thời điểm kế tiếp giá trị của G i sẽ bằng giá trị của G K 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 (2N80), 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ố (2N,M100). 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 C max và số nhỏ nhất C min 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 C min tìm được Dòng thứ 2: chứa số lớn nhất C max 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 1mm 2 . 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<N10000). 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. . NHA TRANG – KHÁNH HOÀ HỘI TIN HỌC VIỆT NAM OLYMPIC TIN HỌC SINH VIÊN LẦN THỨ XI ĐỀ CHÍNH THỨC KHỐI THI: CHUYÊN Thời gian làm bài: 180. 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