trang chủ / bài tập / wellknown

Số k-bonacci nổi tiếng

Đề bài

Mô tả

Dãy số k-bonacci (với k là số nguyên, k>1) là tổng quát hoá của dãy Fibonacci, được định nghĩa như sau:

  • F(k,n)=0 với mọi số nguyên n thoả 1n<k;
  • F(k,k)=1;
  • F(k,n)=F(k,n1)+F(k,n2)++F(k,nk) với mọi số nguyên n>k.

Cho trước số nguyên dương s, hãy biểu diễn s thành tổng của ít nhất hai số k-bonacci phân biệt (xét theo giá trị). Lưu ý: giá trị 0 là một số k-bonacci hợp lệ (vì F(k,n)=0 với 1n<k), nên có thể được dùng trong biểu diễn.

Đảm bảo luôn tồn tại lời giải. Nếu có nhiều cách biểu diễn, in ra cách bất kỳ.

Dữ liệu vào

Một dòng chứa hai số nguyên sk (1s,k109; k>1).

Dữ liệu ra

  • Dòng đầu in số nguyên m (m2) — số lượng số trong biểu diễn tìm được.
  • Dòng thứ hai in m số nguyên phân biệt a1,a2,,am, mỗi số đều phải là một giá trị xuất hiện trong dãy k-bonacci, và tổng của chúng bằng s.

Ràng buộc

  • 1s109
  • 2k109

Ví dụ

Input Output Giải thích
5 2 2
5 0
Với k=2, dãy Fibonacci có các giá trị 0,1,2,3,5,8,. Một cách biểu diễn 55+0. Cách khác: 3+2 hay 3+2+0 đều hợp lệ.
21 5 3
16 4 1
Với k=5, dãy có các giá trị 0,1,2,4,8,16,31,. Ta có 21=16+4+1.
1 2 2
1 0
1=1+0, dùng cả giá trị 01 của dãy Fibonacci.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0