結果
問題 |
No.3036 Nauclhlt型文字列
|
ユーザー |
![]() |
提出日時 | 2025-04-15 23:29:55 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 977 bytes |
コンパイル時間 | 1,633 ms |
コンパイル使用メモリ | 81,612 KB |
実行使用メモリ | 66,724 KB |
最終ジャッジ日時 | 2025-04-15 23:31:11 |
合計ジャッジ時間 | 2,096 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | RE * 3 |
other | RE * 15 |
ソースコード
mod = (ord('\n') ** len('abcdefghi')) + len('abcdefg') one = len('a') zero = len('') two = len('aa') def multiply(a, b): res = [[zero]*two for _ in 'aa'] for i in range(two): for k in range(two): a_ik = a[i][k] if a_ik: for j in range(two): res[i][j] = (res[i][j] + a_ik * b[k][j]) % mod return res def matrix_pow(mat, power): result = [[one, zero], [zero, one]] while power > zero: if power % two != zero: result = multiply(result, mat) mat = multiply(mat, mat) power = power // two return result T = int(input()) for _ in range(T): n = int(input()) if n == zero: print(two % mod) elif n == one: print(one % mod) else: exponent = n - one mat = matrix_pow([[one, one], [one, zero]], exponent) vec = [one, two] ans = (mat[0][0] * vec[0] + mat[0][1] * vec[1]) % mod print(ans)