結果

問題 No.980 Fibonacci Convolution Hard
ユーザー 👑 rin204rin204
提出日時 2022-03-24 16:56:50
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 411 ms / 2,000 ms
コード長 769 bytes
コンパイル時間 157 ms
コンパイル使用メモリ 81,856 KB
実行使用メモリ 255,684 KB
最終ジャッジ日時 2024-04-21 02:31:40
合計ジャッジ時間 9,622 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 386 ms
255,600 KB
testcase_01 AC 387 ms
255,484 KB
testcase_02 AC 411 ms
255,360 KB
testcase_03 AC 409 ms
255,340 KB
testcase_04 AC 386 ms
255,396 KB
testcase_05 AC 386 ms
255,364 KB
testcase_06 AC 401 ms
255,160 KB
testcase_07 AC 394 ms
255,524 KB
testcase_08 AC 386 ms
255,116 KB
testcase_09 AC 383 ms
255,308 KB
testcase_10 AC 390 ms
255,684 KB
testcase_11 AC 382 ms
255,672 KB
testcase_12 AC 382 ms
255,244 KB
testcase_13 AC 391 ms
255,384 KB
testcase_14 AC 384 ms
255,284 KB
testcase_15 AC 382 ms
255,472 KB
testcase_16 AC 194 ms
105,772 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