Bài tập:
Hãy xem xét vấn đề: "đưa ra một bàn cờ bị thiếu một ô vuông, hãy cắt nó thành 21 L-triominoes". Có một bằng chứng xây dựng nổi tiếng rằng điều này có thể được thực hiện cho bất kỳ kích thước bàn cờ vuông nào là sức mạnh của hai. Nó hoạt động bằng cách chia bàn cờ thành một bàn cờ nhỏ hơn với lỗ trên đó và một triomino lớn và sau đó quan sát rằng triomino có thể được cắt thành bốn tam thức đệ quy.
Trong nhiệm vụ này, bạn được yêu cầu cắt một bàn cờ 8x8 thành các hình tam giác hình chữ L và sau đó tô màu chúng bằng bốn màu sao cho không có hai hình tam giác liền kề nào có cùng màu.
Sự chỉ rõ:
Đầu vào của bạn là vị trí của lỗ, được đưa ra dưới dạng một cặp số nguyên. Bạn có thể chọn cái nào là chỉ mục cột và cái nào là chỉ mục hàng. Bạn có thể chọn nếu mỗi điểm bắt đầu từ 0 hoặc 1 và cách góc tăng chúng. Bạn có thể yêu cầu A..H là tọa độ đầu tiên thay vì 0..7 hoặc 1..8. Bạn cũng có thể chấp nhận cả hai tọa độ được đóng gói thành một số nguyên duy nhất 0..63 hoặc 1..64 theo thứ tự từ điển (hàng chính hoặc cột chính, từ trái sang phải hoặc phải sang trái, lên xuống hoặc xuống lên). Bạn có thể viết một chương trình đầy đủ, hoặc một chức năng.
Bạn có thể xuất ra ốp lát dưới dạng ASCII, dưới dạng ASCII màu hoặc dưới dạng nguyên thủy đồ họa. Nếu bạn chọn đầu ra ASCII, bạn có thể chọn bất kỳ bốn ký tự ASCII có thể in nào để thể hiện bốn màu. Nếu bạn chọn ASCII được tô màu, bạn có thể chọn bất kỳ bốn ký tự ASCII có thể in hoặc chỉ một ký tự khác ngoài khoảng trắng. Các lỗ phải được đại diện bởi các nhân vật không gian. Nếu một trong các nhân vật của bạn là nhân vật không gian, không có triomino liền kề với lỗ hoặc ở cạnh bàn cờ có thể có màu này.
Nếu bạn chọn ASCII màu hoặc đầu ra đồ họa, bạn có thể chọn bốn màu bất kỳ trong số # 000, # 00F, # 0F0, # 0FF, # F00, # F0F, # FF0, #FFF hoặc các màu tương đương gần nhất có sẵn trong môi trường của bạn. Nếu bạn chọn đầu ra đồ họa, các nguyên thủy đồ họa của bạn phải được điền vào các ô vuông có kích thước tối thiểu 32x32 pixel và cách nhau không quá hai pixel màu khác. Nếu ở trên vượt quá độ phân giải màn hình của môi trường của bạn, yêu cầu kích thước tối thiểu được giảm xuống kích thước vuông lớn nhất vẫn vừa với màn hình.
Bạn có thể chọn bất kỳ ốp lát hợp lệ nào của bàn cờ đã cho. Bạn có thể chọn bất kỳ bốn màu của ốp lát bạn chọn. Lựa chọn bốn màu của bạn phải giống nhau trên tất cả các đầu ra, nhưng bạn không bắt buộc phải sử dụng mọi màu trong mỗi đầu ra.
Ví dụ:
Đầu ra có thể cho đầu vào = [0, 0] (góc trên cùng bên trái)
#??##??
##.?#..?
?..#??.#
??##.?##
##?..#??
#.??##.?
?..#?..#
??##??##
Một đầu ra có thể khác của cùng một chương trình (input = [0, 7]):
??#??#?
?##?##??
..xx..xx
.?x#.?x#
??##??##
..xx..xx
.?x#.?x#
??##??##
Một chương trình khác cũng có thể tạo ra, cho đầu vào của "D1" (lưu ý hướng bàn cờ không chuẩn nhưng được phép),
AABBCCAA
ACBACBAC
CCAABBCC
ABBAADD
AABDABDC
BBDDBBCC
BABBACAA
AABAACCA