Một số bài tập Pascal khó
Bài 1: Liệt kê tất cả cách xếp n con hậu trên bàn cờ N*N mà chúng không ăn nhau.
Bài 2: Hãy viết chương trình liệt kê tất cả các dãy nhị phân có độ dài n.
Bài 3: Hãy viết chương trình liệt kê các hoán vị của {1,2,...,n}
Bài 4: Hãy viết chương trình liệt kê các tổ hợp chập m của {1,2,...,n}
Bài 5: Có 9 căn phòng (đánh số từ 1 đến 9) được quét vôi với màu trắng, xanh hoặc vàng. Có 9 robot (đánh số từ 1 đến 9) phụ trách việc quét vôi các phòng. Mỗi robot chỉ quét vôi một số phòng nhất định. Việc quét vôi các phòng được thực hiện nhờ 1 chương trình cài sẵn theo quy tắc:
+ Nếu phòng đang có màu trằng thì quét màu xanh.
+ Nếu phòng đang có màu xanh thì quét màu vàng.
+ Nếu phòng đang có màu vàng thì quét màu trắng.
Cần phải gọi lần lượt một số robot ra quét vôi để tất cả các phòng có cùng màu trắng (mỗi lần gọi 1 robot, 1 robot có thể gọi nhiều lần và có thể có robot không được gọi, robot được gọi sẽ quét vôi tất cả các phòng nó phụ trách. Hãy tìm phương án như vậy sao cho số lượt phòng phải quét vôi là ít nhất.
Dữ liệu vào: Cho trong file ROBOT.INP
+ 9 dòng đầu, mỗi dòng mô tả danh sách các phòng được quét vôi bởi 1 robot theo thứ tự từ robot 1 đến robot 9. Mỗi dòng như vậy gồm các số hiệu phòng viết liền nhau.
+ Dòng cuối mô tả màu vôi ban đầu của các phòng gồm 9 kí tự viết liền nhau, kí tự thứ i chỉ màu của phòng i: T - trắng, X - xanh, V - vàng.
Kết quả: Ghi ra file ROBOT.OUT
+ Nếu không thể thực hiện được thì ghi thông báo: "IMPOSSIBLE"
+ Nếu có thể thực hiện được thì ghi 2 dòng: dòng đầu là dãy thứ tự các robot được gọi viết liền nhau và dòng sau ghi số lượt phòng được quét vôi tương ứng.
Ví dụ:
ROBOT.INP
159
123
357
147
5
369
456
789
258
XVXVXVTXT
ROBOT.OUT
2455688
17
Bài 2: Hãy viết chương trình liệt kê tất cả các dãy nhị phân có độ dài n.
Bài 3: Hãy viết chương trình liệt kê các hoán vị của {1,2,...,n}
Bài 4: Hãy viết chương trình liệt kê các tổ hợp chập m của {1,2,...,n}
Bài 5: Có 9 căn phòng (đánh số từ 1 đến 9) được quét vôi với màu trắng, xanh hoặc vàng. Có 9 robot (đánh số từ 1 đến 9) phụ trách việc quét vôi các phòng. Mỗi robot chỉ quét vôi một số phòng nhất định. Việc quét vôi các phòng được thực hiện nhờ 1 chương trình cài sẵn theo quy tắc:
+ Nếu phòng đang có màu trằng thì quét màu xanh.
+ Nếu phòng đang có màu xanh thì quét màu vàng.
+ Nếu phòng đang có màu vàng thì quét màu trắng.
Cần phải gọi lần lượt một số robot ra quét vôi để tất cả các phòng có cùng màu trắng (mỗi lần gọi 1 robot, 1 robot có thể gọi nhiều lần và có thể có robot không được gọi, robot được gọi sẽ quét vôi tất cả các phòng nó phụ trách. Hãy tìm phương án như vậy sao cho số lượt phòng phải quét vôi là ít nhất.
Dữ liệu vào: Cho trong file ROBOT.INP
+ 9 dòng đầu, mỗi dòng mô tả danh sách các phòng được quét vôi bởi 1 robot theo thứ tự từ robot 1 đến robot 9. Mỗi dòng như vậy gồm các số hiệu phòng viết liền nhau.
+ Dòng cuối mô tả màu vôi ban đầu của các phòng gồm 9 kí tự viết liền nhau, kí tự thứ i chỉ màu của phòng i: T - trắng, X - xanh, V - vàng.
Kết quả: Ghi ra file ROBOT.OUT
+ Nếu không thể thực hiện được thì ghi thông báo: "IMPOSSIBLE"
+ Nếu có thể thực hiện được thì ghi 2 dòng: dòng đầu là dãy thứ tự các robot được gọi viết liền nhau và dòng sau ghi số lượt phòng được quét vôi tương ứng.
Ví dụ:
ROBOT.INP
159
123
357
147
5
369
456
789
258
XVXVXVTXT
ROBOT.OUT
2455688
17
Nhận xét
Đăng nhận xét