Ước chung lớn nhất của đa thức
Đề bài
Mô tả
Với hai đa thức và (trong đó khác đa thức không), phép chia đa thức có dư cho ta biểu diễn duy nhất
trong đó được gọi là phần dư của phép chia cho .
Nhờ phép chia có dư, ta định nghĩa được thuật toán Euclid tìm ước chung lớn nhất của hai đa thức: với cặp , nếu là đa thức không thì kết quả là ; ngược lại kết quả là giá trị thuật toán trả về cho cặp với là phần dư của chia . Mỗi lần chuyển từ cặp sang cặp được tính là một bước.
Cho số nguyên . Hãy xây dựng hai đa thức thỏa mãn đồng thời:
- Bậc của mỗi đa thức không vượt quá .
- Mọi hệ số đều là số nguyên có giá trị tuyệt đối không vượt quá , tức thuộc .
- Hệ số cao nhất (hệ số của lũy thừa lớn nhất) của mỗi đa thức bằng .
- Bậc của đa thức thứ nhất lớn hơn bậc của đa thức thứ hai.
- Thuật toán Euclid mô tả ở trên thực hiện đúng bước với cặp đa thức này.
Dữ liệu vào
Một dòng duy nhất chứa số nguyên : số bước cần đạt được.
Dữ liệu ra
In ra hai đa thức, mỗi đa thức gồm hai dòng:
- Dòng thứ nhất chứa số nguyên (): bậc của đa thức.
- Dòng thứ hai chứa số nguyên thuộc : các hệ số theo thứ tự từ hệ số tự do đến hệ số cao nhất.
Đa thức thứ nhất in trước, đa thức thứ hai in sau. Nếu không tồn tại đáp án, in ra . Nếu có nhiều đáp án, in ra một đáp án bất kỳ.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 | 1 0 1 0 1 |
Hai đa thức là và . Dãy chuyển: , đúng bước. |
| 2 | 2 1 0 1 1 0 1 |
Hai đa thức là và . Dãy chuyển: , đúng bước. Đáp án và cũng được chấp nhận. |
Bình luận