P4783 模板 矩陣求逆

2022-05-23 22:06:08 字數 851 閱讀 2274

題目大意:給你乙個矩陣$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...