Vấn đề là tìm số S lớn nhất của các số nguyên dương sao cho tổng các bình phương của các phần tử của S bằng với một số n nhất định.Biểu thị số tự nhiên là tổng của các ô riêng biệt
Ví dụ:
4 = 2²
20 = 4² + 2²
38 = 5² + 3² + 2²
300 = 11² + 8² + 7² + 6² + 4² + 3² + 2² + 1².
Tôi có thuật toán chạy theo thời gian O(2^(sqrt n) * n)
, nhưng quá chậm (mỗi tập hợp con của hình vuông).
Vì vậy, vấn đề là bạn đang theo một thuật toán nhanh hơn? – Werner
Thật không may là giải pháp của tôi quá chậm. –
Nó chỉ không rõ ràng từ câu hỏi của bạn, vì bạn không đề cập đến nó cả. – Werner