BOJ 29817 주식을 안전하게 (Hard)

BOJ 29817 주식을 안전하게 (Hard)

문제 링크:

문제 내용

길이 pp의 수열 M0,M1,⋯ ,Mp−1M_0, M_1, \cdots, M_{p-1}이 주어집니다. i≥1i \ge 1에 대해 Di=Mi−Mi−1D_i = M_i - M_{i-1}이라고 할 때, 상수 cc에 대해 다음의 식이 성립하도록 수열 MM을 연장하려고 합니다.

Dn+c×Dn−1+⋯+cp−1×Dn+1−p=0 D_n + c \times D_{n-1} + \cdots + c^{p-1} \times D_{n+1-p} = 0

이때 MkM_k를 109+710^9+7로 나누었을 때의 음이 아닌 나머지를 구하세요.

입력

첫 줄에 pp, cc, kk가 주어집니다. (2≤p≤1002 \le p \le 100, 1≤c≤1001 \le c \le 100, p≤k≤1018p \le k \le 10^{18}

다음 줄에 M0,M1,⋯ ,Mp−1M_0, M_1, \cdots, M_{p-1}이 주어집니다. (−108≤Mi≤108-10^8 \le M_i \le 10^8)

출력

문제의 정답을 출력합니다.

문제 풀이

스포일러
DiD_i에 대한 식을 MiM_i에 대한 식으로 치환한 뒤 정리하면 MnM_n에 대한 길이 pp의 선형 재귀식을 얻을 수 있습니다. pp는 100 이하이므로 행렬 거듭제곱을 이용하여 kk번째 원소를 구할 수 있습니다.
Last updated on