結果
問題 |
No.978 Fibonacci Convolution Easy
|
ユーザー |
![]() |
提出日時 | 2020-02-03 05:09:46 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 535 ms / 2,000 ms |
コード長 | 356 bytes |
コンパイル時間 | 83 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 44,332 KB |
最終ジャッジ日時 | 2024-09-18 21:38:06 |
合計ジャッジ時間 | 12,435 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 |
ソースコード
import numpy as np m = 1000000007 n, p = map(int, input().split()) def mpow(b, i): if i == 0: return 1 p = mpow(b, i>>1)**2 % m return p * b % m if i & 1 else p r = mpow(p, m-2) h = (m+1)//2 c = np.matrix([[p, 1], [1, 0]], 'i8') u, v = (np.matrix([1, 0]) * mpow(c, n-1)).flat s = (u + v - 1) * r % m t = (u * v % m) * r % m print((s**2 + t) % m * h % m)