模板題目
輸入乙個n*n的矩陣,若可逆,求其逆矩陣。
#include
using
namespace std;
const
int maxn =
405;
const
int mod=
1e9+7;
int n;
struct matrix
int*
operator
(int x)
void
swap
(int x,
int y)
//交換某兩行
void
mul(
int x,
int k)
//將某一行的所有元素乘上k
voidmd(
int x,
int y,
int k)
//將某一行的所有元素乘上k加到另一行去
void
print()
}}a,b;
long
long
qpow
(int a,
int b=mod-2)
return ans;
}int
main()
}for
(int i=
1;i<=n;
++i) b[i]
[i]=1;
for(
int i=
1;i<=n;
++i)}}
if(!a[i]
[i])
return
puts
("no solution"),
0;//如果消著消著某一列沒有數了,說明無解
b.mul(i,
qpow
(a[i]
[i])
),a.
mul(i,
qpow
(a[i]
[i]));
for(
int j=i+
1;j<=n;
++j)
}//消成對角矩陣
for(
int i=n-
1;i;
--i)
} b.
print()
;return0;
}
洛谷 P4783 模板 矩陣求逆
可以直接建乙個 n 2 n n times 2 n n 2 n 的矩陣,左半部分為給定矩陣,右半部分為單位矩陣,進行高斯消元 在取模意義下,除法轉化為乘以乘法逆元,模數是質數,逆元用費馬小定理加快速冪求即可。include include using namespace std inline int...
P4783 模板 矩陣求逆
題目大意 給你乙個矩陣 a 求它的逆矩陣 a 使得 aa i 題解 設 a ie 1e 2 cdots e k e i 為乙個變換 那麼 a e k e cdots e 可以在 a 變為 i 的時候對 i 做相同的操作。當 a 變為 i 時,i 就變成了 a 卡點 無 c code include ...
題解 P4783 模板 矩陣求逆
求乙個n n的矩陣的逆矩陣。答案對10 9 7取模。n 400 矩陣的初等變換 矩陣的逆定義為 a b e e為單位矩陣 此時b為a的逆 如果矩陣有逆 那麼這個矩陣經過一系列初等變化之後可以變為e 設一系列初等變化分別為p1,p2,p3.px 顯然可得a p1 p2 p3 px e 所以b p1 p...