結果
| 問題 |
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])