【矩陣乘法】Matrix Power Series
題目大意
給出一個矩陣 A A A,求矩陣 S = A + A 2 + A 3 . . . . . . A k S=A+A^2+A^3......A^k S=A+A2+A3......Ak. 並模上一個數m
輸入
第一行
n
,
k
,
m
n,k,m
n,k,m
接下來讀入矩陣
A
A
A
輸出
矩陣 S S S
矩陣乘法
如果A是一個數的情況,那我們可以得到這樣一個矩陣:
同理。我們只要把其中的數字替換成一個矩陣即可。
其中,1替換為單位矩陣E。即左上到右下的斜角線為1,其餘都為0的矩陣。
即,對於一個數k,有
(
k
∗
1
=
1
∗
k
=
k
)
(k*1=1*k=k)
(k∗1=1∗k=k),
而,對於一個矩陣A,有
(
A
∗
E
=
E
∗
A
=
A
)
(A*E=E*A=A)
(A∗E=E∗A=A).
最後答案中會多一個E出來(最開始的E),減去即可。
程式碼
#include<cstdio>
int n,m,k;
struct asdf{
int n,m,jz[100][100];
} A,B,C;
asdf operator *(asdf aa, asdf bb){
asdf cc;
cc.n = aa.n;
cc.m = bb.m;
for(int i = 1; i <= cc.n; ++i)
for(int j = 1 ;j <= cc.m; ++j)
cc.jz[i][j] = 0;
for(int l = 1; l <= aa.m; ++l)
for(int i = 1; i <= cc.n; ++i)
for(int j = 1; j <= cc.m; ++j)
cc.jz[i][j] = (cc.jz[i][j] + aa.jz[i][l] * bb.jz[l][j] % m) % m;
return cc;
}
void ksm(int now){
C = B;
while (now) {
if (now & 1) C = C * B;
B = B * B;
now /= 2;
}
}
int main(){
scanf("%d%d%d",&n,&k,&m);
A.n = A.m = n;
for(int i = 1; i <= n; ++i){
for(int j = 1; j <= n; ++j)
scanf("%d",&A.jz[i][j]);
}
B.n = B.m = 2*n;
for(int i = 1; i <= n; ++i){
B.jz[i][i+n] = B.jz[i+n][i+n] = 1;
for(int j = 1; j <= n; ++j)
B.jz[i][j] = A.jz[i][j] % m;
}
ksm(k);
for(int i = 1; i <= n; ++i){
for(int j = 1; j <= n; ++j){
if(i == j) printf("%d ",(C.jz[i][j+n]+m-1) % m);
else printf("%d ",C.jz[i][j+n]);
}
printf("\n");
}
}
相關文章
- POJ 3233 Matrix Power Series(矩陣+二分)矩陣
- POJ 3233 Matrix Power Series (矩陣快速冪+等比數列二分求和)矩陣
- POJ 3233-Matrix Power Series( S = A + A^2 + A^3 + … + A^k 矩陣快速冪取模)矩陣
- 矩陣乘法矩陣
- 理解矩陣乘法矩陣
- MKL庫矩陣乘法矩陣
- cuda 加速矩陣乘法矩陣
- #100. 矩陣乘法矩陣
- Cellular Matrix 蜂窩矩陣(一)矩陣
- goldengate 認證矩陣matrixGo矩陣
- 【矩陣乘法】【快速冪】遞推矩陣
- OpenCL之矩陣乘法實現矩陣
- POJ 3613 Cow Relays 矩陣乘法Floyd+矩陣快速冪矩陣
- Spark Distributed matrix 分散式矩陣Spark分散式矩陣
- HDU 4920 Matrix multiplication(矩陣相乘)矩陣
- Python Numpy的陣列array和矩陣matrixPython陣列矩陣
- [CareerCup] 1.7 Set Matrix Zeroes 矩陣賦零矩陣
- HDU 4965 Fast Matrix Calculation(矩陣快速冪)AST矩陣
- (原創)一般矩陣 Matrix類矩陣
- CUDA 矩陣乘法終極優化指南矩陣優化
- 斐波那契數列Ⅳ【矩陣乘法】矩陣
- torch中向量、矩陣乘法大總結矩陣
- [轉]如何理解矩陣乘法的規則矩陣
- bzoj3240: [Noi2013]矩陣遊戲(矩陣乘法+快速冪)矩陣遊戲
- 旋轉矩陣(Rotate Matrix)的性質分析矩陣
- 怎樣用python計算矩陣乘法?Python矩陣
- 計算機演算法:Strassen矩陣乘法計算機演算法矩陣
- flutter佈局-5-Matrix4矩陣變換Flutter矩陣
- 04 矩陣乘法與線性變換複合矩陣
- BASIC-17 / Tsinsen 1041 矩陣乘法(java)矩陣Java
- 矩陣乘法的運算量計算(華為OJ)矩陣
- 動手畫混淆矩陣(Confusion Matrix)(含程式碼)矩陣
- 張量(Tensor)、標量(scalar)、向量(vector)、矩陣(matrix)矩陣
- NMF 非負矩陣分解(Non-negative Matrix Factorization)實踐矩陣
- 想學人工智慧,先從理解矩陣乘法開始人工智慧矩陣
- bzoj4547: Hdu5171 小奇的集合(矩陣乘法)矩陣
- UOJ 241. 【UR #16】破壞發射臺 [矩陣乘法]矩陣
- 非科班程式設計師才不知道的矩陣Matrix程式設計師矩陣