Một điểm đặt arborally hài lòng là một tập hợp 2D điểm như vậy mà, đối với bất kỳ hình chữ nhật trục thẳng hàng có thể được hình thành bằng hai điểm trong tập như góc đối diện, mà hình chữ nhật chứa hoặc chạm ít nhất một điểm khác. Đây là một định nghĩa tương đương từ Wikipedia:
Một tập hợp điểm được cho là thỏa mãn nếu thuộc tính sau: đối với bất kỳ cặp điểm nào không nằm trên cùng một đường ngang hoặc dọc, tồn tại điểm thứ ba nằm trong hình chữ nhật được kéo dài bởi hai điểm đầu tiên ( hoặc bên trong hoặc trên ranh giới).
Hình ảnh sau đây minh họa cách hình chữ nhật được hình thành. Bộ điểm này KHÔNG được thỏa mãn vì hình chữ nhật này cần chứa ít nhất một điểm nữa.
Trong nghệ thuật ASCII, tập hợp điểm này có thể được biểu diễn dưới dạng:
......
....O.
......
.O....
......
Một sửa đổi nhỏ có thể làm cho điều này được thỏa mãn:
......
....O.
......
.O..O.
......
Ở trên, bạn có thể thấy rằng tất cả các hình chữ nhật (trong đó chỉ có một) chứa ít nhất ba điểm.
Đây là một ví dụ khác về tập hợp điểm phức tạp hơn được thỏa mãn:
Đối với bất kỳ hình chữ nhật nào có thể được vẽ kéo dài hai điểm, hình chữ nhật đó chứa ít nhất một điểm khác.
Các thách thức
Cho một lưới hình chữ nhật điểm (mà tôi đại diện với O
) và khoảng trống (mà tôi đại diện với .
), sản lượng một truthy giá trị nếu nó arborally được thỏa mãn, hoặc một falsey giá trị nếu nó không phải là. Đây là môn đánh gôn.
Quy tắc bổ sung:
- Bạn có thể chọn để có các ký tự
O
và.
hoán đổi với bất kỳ cặp ký tự ASCII có thể in nào khác. Đơn giản chỉ cần xác định ánh xạ ký tự chương trình của bạn sử dụng. - Lưới sẽ luôn là hình chữ nhật. Một dòng mới được cho phép.
Thêm ví dụ
Hài lòng về mặt trồng trọt:
.OOO.
OO...
.O.OO
.O..O
....O
..O..
OOOO.
...O.
.O.O.
...OO
O.O.
..O.
OOOO
.O.O
OO..
...
...
...
...
..O
...
O.....
O.O..O
.....O
OOO.OO
Không hài lòng về mặt trồng trọt:
..O..
O....
...O.
.O...
....O
..O..
O.OO.
...O.
.O.O.
...OO
O.....
..O...
.....O