Đếm số cây nhị phân tìm kiếm theo chiều cao
Đề bài
Mô tả
Một cây nhị phân tìm kiếm (BST) là một cây nhị phân, trong đó mỗi nút mang một khóa khác nhau và thỏa mãn tính chất: với mỗi nút, mọi khóa trong cây con trái đều nhỏ hơn khóa của nút đó, và mọi khóa trong cây con phải đều lớn hơn khóa của nút đó. Mỗi nút có không quá hai con.
Cho hai số nguyên dương và . Hãy đếm số lượng cây nhị phân tìm kiếm khác nhau chứa đúng nút với các khóa là các số nguyên phân biệt từ đến , sao cho chiều cao của cây không nhỏ hơn .
Trong bài này, chiều cao của cây được định nghĩa là số nút lớn nhất trên một đường đi từ gốc xuống một lá nào đó, tính cả nút gốc và nút lá. (Nói cách khác, một cây chỉ có một nút có chiều cao bằng .)
Dữ liệu vào
Một dòng duy nhất chứa hai số nguyên dương và cách nhau bởi dấu cách.
Dữ liệu ra
Một số nguyên duy nhất — số lượng cây nhị phân tìm kiếm thỏa mãn yêu cầu. Đảm bảo kết quả không vượt quá .
Ràng buộc
- .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 | 5 | Có cây BST với nút (số Catalan ), tất cả đều có chiều cao . |
| 3 3 | 4 | Có cây BST với nút; chỉ duy nhất một cây cân bằng (gốc là , hai con là và ) có chiều cao . Còn lại cây có chiều cao . |
Bình luận