結果

問題 No.980 Fibonacci Convolution Hard
ユーザー 👑 rin204rin204
提出日時 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
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 334 ms
255,560 KB
testcase_01 AC 336 ms
255,252 KB
testcase_02 AC 338 ms
255,336 KB
testcase_03 AC 340 ms
255,300 KB
testcase_04 AC 336 ms
255,488 KB
testcase_05 AC 333 ms
255,140 KB
testcase_06 AC 343 ms
255,612 KB
testcase_07 AC 338 ms
255,456 KB
testcase_08 AC 342 ms
255,556 KB
testcase_09 AC 340 ms
255,696 KB
testcase_10 AC 338 ms
255,352 KB
testcase_11 AC 340 ms
255,356 KB
testcase_12 AC 339 ms
255,452 KB
testcase_13 AC 340 ms
255,224 KB
testcase_14 AC 341 ms
255,188 KB
testcase_15 AC 344 ms
255,404 KB
testcase_16 AC 193 ms
105,832 KB
権限があれば一括ダウンロードができます

ソースコード

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