結果
問題 |
No.3226 2×2行列累乗
|
ユーザー |
|
提出日時 | 2025-08-08 22:34:22 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 58 ms / 2,000 ms |
コード長 | 602 bytes |
コンパイル時間 | 314 ms |
コンパイル使用メモリ | 82,796 KB |
実行使用メモリ | 54,888 KB |
最終ジャッジ日時 | 2025-08-08 22:34:24 |
合計ジャッジ時間 | 2,392 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
a,b=map(int,input().split()) c,d=map(int,input().split()) s,t=map(int,input().split()) n,k=map(int,input().split()) M=k def mat_mul(a,b): I,J,K=len(a),len(b),len(b[0]) c=[[0]*K for _ in range(I)] for i in range(I): for j in range(J): for k in range(K): c[i][k]=(c[i][k]+a[i][j]*b[j][k])%M return c # A:累乗する行列, k:累乗数 def pow_mat(A,k): n=len(A) P=[[0]*n for _ in range(n)] for i in range(n):P[i][i]=1 while k: if k&1:P=mat_mul(P,A) A=mat_mul(A,A) k>>=1 return P mn=pow_mat(((a,b),(c,d)),n) st=[[s],[t]] r,u=mat_mul(mn,st) print(r[0],u[0])