Cây chia ước tính thẩm mỹ là cây chia các đầu vào n
, với bất kỳ số tổng hợp nào m
, có hai nút con là cặp ước số gần nhất với căn bậc hai của m
. Nút bên trái phải là ước số nhỏ hơn m
và nút bên phải là ước số lớn hơn của m
. Một số nguyên tố trong cây nên không có nút con. Cây của bạn có thể ở dạng văn bản nghệ thuật hoặc một hình ảnh. Các quy tắc cho đầu ra nghệ thuật văn bản như sau.
Quy tắc khoảng cách
Để loại bỏ các nút trên cây, chúng ta có các quy tắc sau:
- Các nút ở độ sâu nhất định từ gốc phải nằm trên cùng một dòng văn bản trong đầu ra.
/ \ KHÔNG PHẢI / \ / \ / 3 2 3 2
- Đối với các nút bên trái, nhánh đến phải ở phía trên bên phải nếu nút là số có một chữ số, mặt khác, ngay phía trên chữ số cuối cùng. Thí dụ:
/ VÀ / 3 720
- Đối với các nút bên phải, nhánh đến phải nằm ở phía trên bên trái nếu nút là số có một chữ số, mặt khác, ngay phía trên chữ số đầu tiên. Thí dụ:
\ VÀ \ 7 243
- Đối với các nhánh bên trái, nhánh nên bắt đầu một khoảng trắng ở bên trái của số. Thí dụ:
275 / 11
- Đối với các nhánh bên phải, nhánh nên bắt đầu một khoảng trắng ở bên phải của số. Thí dụ:
275 \ 25
- Bất kỳ hai nút trên cùng một cấp độ của cây nên có tối thiểu hai khoảng cách giữa chúng. Đồng thời, bất kỳ hai cây con nào trên cùng một cấp độ của cây nên có càng ít khoảng cách giữa chúng càng tốt.
Cây này không hoạt động vì ** cây con ** quá gần. 504 / \ / \ / \ / \ 21. 24 / \. / \ / \. / \ 3 7. 4 6 . / \ / \ .2 2 2 3 Trong khi cây này có đủ không gian giữa các nhánh của nó. 504 / \ / \ / \ / \ / \ 21 ... 24 / \ ... / \ / \ ... / \ 3 7 ... 4 6 ... / \ / \ ... 2 2 2 3
- Nếu bất kỳ hai cây con quá gần nhau trên một cây, chúng có thể được phân tách bằng cách thêm một hàng nhánh khác
/\
vào cây phía trên bố mẹ.
441 / \ Hàng cuối cùng chưa được điền và chúng tôi đã hết dung lượng. 21 21 / \ / \ Thêm một hàng nhánh khác 441 / \ Hầu như, nhưng 7 và 3 quá gần nhau. / \ Một hàng nữa nên làm điều đó. 21 21 / \ / \ 3 7 3 7 Thêm một hàng nhánh khác 441 / \ Và chúng ta đã hoàn thành. / \ / \ 21 21 / \ / \ 3 7 3 7
Ví dụ
Lấy ví dụ đầy đủ, cây chia 24 sẽ trông như thế này:
24
/ \
/ \
4 6
/ \ / \
2 2 2 3
4 và 6 là cặp ước gần nhất với căn bậc hai của 24. 4 nằm bên trái, vì nó nhỏ hơn. Trên dòng tiếp theo, số 2 ở bên trái của 3, vì nó nhỏ hơn.
Cây chia cho 63 sẽ giống như:
63 and NOT like this 63
/ \ / \
7 9 3 21
/ \ / \
3 3 7 3
Trong cây không chính xác, 3 và 21 không phải là cặp ước gần nhất với căn bậc hai của 63 và 3 và 7 không được sắp xếp đúng. Vị trí chi nhánh trên 21 là chính xác, mặc dù.
Đối với 42, bạn nên có:
42 and NOT 42
/ \ / \
6 7 21 2
/ \ / \
2 3 3 7
Chúng ta hãy xem 720. Lưu ý rằng chúng ta cần năm cấp độ của các nhánh 720
để các 24
và 30
cây con được đặt cách nhau chính xác. Ngoài ra, lưu ý rằng 24
và 30
có hai cấp nhánh vì 4
và 6
có các nút con cần khoảng cách chính xác và các nút con 30
cần phải ở cùng cấp độ với các nút con của 24
.
720
/ \
/ \
/ \
/ \
/ \
24 30
/ \ / \
/ \ / \
4 6 5 6
/ \ / \ / \
2 2 2 3 2 3
Các thách thức
- Nhiệm vụ của bạn là xây dựng một cây chia ước tính có khoảng cách chính xác cho đầu vào
n
, trong đón
một số nguyên dương lớn hơn 1. - Đầu ra của bạn có thể chứa các khoảng trắng ở đầu và cuối và các dòng mới hàng đầu và cuối, nhưng phải tuân theo các quy tắc khoảng cách được đưa ra ở trên.
- Đầu ra của bạn được phép là: văn bản nghệ thuật, một hình ảnh (các định dạng khác sẽ được thêm vào, nếu cần).
- Đối với hình ảnh, đảm bảo các nút của cây của bạn có khoảng cách đều nhau và các nút có cùng độ cao trong cây có cùng độ cao trong ảnh.
- Đây là mã golf. Số byte ít nhất (hoặc tương đương) thắng.
Tín dụng cho Stewie Griffin vì đã nghĩ ra ý tưởng này, và cảm ơn Peter Taylor, Martin Ender, Mego và Eᴀsᴛᴇʀʟʏ Iʀᴋ vì sự giúp đỡ của họ trong việc viết lại đặc tả. Như thường lệ, bất kỳ đề xuất hoặc chỉnh sửa đều được đánh giá cao. Chúc may mắn và chơi golf tốt!
Nhiều trường hợp thử nghiệm:
2
4
/ \
2 2
20
/ \
4 5
/ \
2 2
323
/ \
17 19
362880
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
576 630
/ \ / \
/ \ / \
/ \ / \
/ \ / \
/ \ / \
/ \ / \
24 24 21 30
/ \ / \ / \ / \
/ \ / \ / \ / \
4 6 4 6 3 7 5 6
/ \ / \ / \ / \ / \
2 2 2 3 2 2 2 3 2 3
1286250
/ \
/ \
/ \
/ \
/ \
1050 1225
/ \ / \
/ \ / \
/ \ / \
30 35 35 35
/ \ / \ / \ / \
5 6 5 7 5 7 5 7
/ \
2 3