Dãy số truy hồi

Xem dưới dạng PDF

Gửi bài giải


Điểm: 1
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Kiểu bài tập

Cho dãy số xác định bởi công thức truy hồi tuyến tính:

  • F(0) = f₀
  • F(1) = f₁
  • F(n) = a × F(n-1) + b × F(n-2) với n ≥ 2

Cho n, a, b, f₀, f₁M. Hãy tính F(n) mod M.

Với n lên đến 10^18, dùng luỹ thừa ma trận:

[F(n)  ]   =   [a  b] ^ (n-1)   × [F(1)]
[F(n-1)]       [1  0]             [F(0)]
Đầu vào

Một dòng duy nhất gồm các số nguyên n, a, b, f₀, f₁, M (0 ≤ n ≤ 10^18, 0 ≤ a, b, f₀, f₁ < M, 1 ≤ M ≤ 10^9+7).

Đầu ra

Một số nguyên duy nhất là F(n) mod M.

Ví dụ
Input:
10 1 1 0 1 1000000007

Output:
55
Giải thích

Với a=1, b=1, f₀=0, f₁=1, ta có dãy Fibonacci. F(10) = 55.


Nhận xét

Không có ý kiến tại thời điểm này.