結果

問題 No.980 Fibonacci Convolution Hard
ユーザー 👑 rin204
提出日時 2022-03-24 16:56:50
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 344 ms / 2,000 ms
コード長 769 bytes
コンパイル時間 228 ms
コンパイル使用メモリ 81,780 KB
実行使用メモリ 255,696 KB
最終ジャッジ日時 2024-10-13 01:02:21
合計ジャッジ時間 8,570 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 17
権限があれば一括ダウンロードができます

ソースコード

diff #

"""
a_1 = 0
a_2 = 1
a_3 = p
a_4 = p^2 + 1
a_5 = p^3 + 2p
a_6 = p^4 + 3p^2 + 1

q_4 = 1
q_5 = 2p
q_6 = 3p^2 + 2
q_7 = 4p^3 + 6p

a_1 = 0
q_5 = a_2 * a_3 + a_3 * a_2
q_6 = a_2 * a_4 + a_3 * a_3 + a_4 * a_2
    = a_2 * (p * a_3 + a_2) + a_3 * (p * a_2 + a_1) + a_4 * a_2
    = a_2 * a_2 + a_3 * a_1 + p * (a_2 * a_3 + a_3 * a_2) + a_4 * a_2
    = q_4 + p * q_5 + a_4 * a_2

q_i = q_{i - 2} + p * q_{i - 1} + a_{i - 2} * a_{2}



"""

MOD = 10 ** 9 + 7

p = int(input())
Q = int(input())
Q = [int(input()) for _ in range(Q)]
n = max(Q) + 1
A = [0, 0, 1]
for _ in range(n - 2):
    x = p * A[-1] + A[-2]
    A.append(x % MOD)
q = [0, 0, 0, 0]
for i in range(4, n):
    x = q[i - 2] + p * q[i - 1] + A[i - 2] * A[2]
    q.append(x % MOD)
print(*[q[x] for x in Q], sep="\n")

0