結果

問題 No.3036 Nauclhlt型文字列
ユーザー lam6er
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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)
0