Luogu P4783 【模板】矩阵求逆 1234567891011121314151617181920212223242526272829303132333435int n, n2; // n2 = n * 2int a[MAXn + 10][MAXn * 2 + 10];bool EvaInv() { for (int i = 1; i <= n; ++i) { a[i][i + n] = 1; } for (int i = 1; i <= n; ++i) { int chose = 0; for (int j = i; j <= n; ++j) { if (a[j][i]) { chose = j; break; } } if (chose == 0) return 0; if (chose != i) { for (int j = 1; j <= n2; ++j) { swap(a[i][j], a[chose][j]); } } int invaii = inv(a[i][i]); for (int j = i; j <= n2; ++j) { a[i][j] = a[i][j] * invaii % MOD; } for (int j = 1; j <= n; ++j) { if (j == i) continue; int mul = a[j][i]; for (int k = i; k <= n2; ++k) { a[j][k] -= a[i][k] * mul % MOD; redmod(a[j][k]); } } } return 1;}