題目大意:給你乙個矩陣$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 #include const int mod = 1e9 + 7;inline int pw(int base, int p)
inline int inv(int x)
inline void reduce(int &x)
#define maxn 405
int n, nn;
int s[maxn][maxn << 1];
int main()
for (int i = 1; i <= n; ++i)
for (int j = i; j <= nn; ++j) std::swap(s[pos][j], s[i][j]);
const int inv = inv(s[i][i]);
for (int j = i; j <= nn; ++j) s[i][j] = static_cast(s[i][j]) * inv % mod;
for (int j = 1; j <= n; ++j) if (i != j)
} for (int i = 1; i <= n; ++i)
return 0;
}
題解 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...
洛谷 P4783 模板 矩陣求逆
可以直接建乙個 n 2 n n times 2 n n 2 n 的矩陣,左半部分為給定矩陣,右半部分為單位矩陣,進行高斯消元 在取模意義下,除法轉化為乘以乘法逆元,模數是質數,逆元用費馬小定理加快速冪求即可。include include using namespace std inline int...
求逆矩陣 模板 洛谷P4783
模板題目 輸入乙個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,in...