結果
| 問題 |
No.980 Fibonacci Convolution Hard
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 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 |
ソースコード
"""
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")