// |A| * A- = A* (伴随矩阵) = 逆矩阵 * 矩阵的值

 #include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<iostream>
#include<algorithm>
using namespace std; const int MAXN = ;
const int Mod = ;
int a[MAXN][MAXN], b[MAXN][MAXN]; int fast_pow(int a, int k){
int res = ;
while(k){
if(k & ) res = 1LL * res * a % Mod;
a = 1LL * a * a % Mod;
k >>= ;
}
return res;
} void solve(int n){
for(int i = ; i <= n; i++){
for(int j = ; j <= n; j++){
b[i][j] = (i==j);//初始 b 为单位矩阵
}
} int det = ;
for(int i = ; i <= n; i++){
int t = i;
for(int k = i; k <= n; k++){
if(a[k][i]) t = k;
} if(t != i) det *= -;
for(int j = ; j <= n; j++){
swap(a[i][j], a[t][j]);
swap(b[i][j], b[t][j]);
} det = 1LL * a[i][i] * det % Mod;
int inv = fast_pow(a[i][i], Mod-); // a[i][i] 的逆元 for(int j = ; j <= n; j++){
a[i][j] = 1LL * inv * a[i][j] % Mod;
b[i][j] = 1LL * inv * b[i][j] % Mod;
}
for(int k = ; k <= n; k++){
if(k == i) continue;
int tmp = a[k][i];
for(int j = ; j <= n; j++){
a[k][j] = (a[k][j] - 1LL * a[i][j] * tmp % Mod + Mod) % Mod;
b[k][j] = (b[k][j] - 1LL * b[i][j] * tmp % Mod + Mod) % Mod;
}
}
}
//经过增广矩阵初等变换,此时 b 为 a 的逆矩阵
det = (det + Mod) % Mod; // |a| % Mod
for(int i = ; i <= n; i++){
for(int j = ; j<= n; j++){
b[i][j] = 1LL * det * b[i][j] % Mod; // 将 b 由逆矩阵变成伴随矩阵
}
}
} int main(void){
int n;
while(scanf("%d",&n)!=EOF){
for(int i = ; i <= n; i++)
for(int j = ; j <= n; j++)
scanf("%d", &a[i][j]);
solve(n);
for(int i = ; i <= n; i++)
printf("%d%c",(i & ? b[i][] : (Mod - b[i][]) % Mod), " \n" [i == n]);
}
return ;
}

时间复杂度为 O(n^3)

初等变换求 |A| % Mod & A- % Mod & A* % Mod(模板)的更多相关文章

  1. n对mod求模整除时转化成mod的数学式

    n对mod求模,它的值在0到mod-1之间,如果要求模整除的时候转化成mod可以用下面的式子: n = (n - 1 % mod + mod) % mod +1 这里先减一,模上mod再加一,这样如果 ...

  2. 求a^b的约数对mod取模

    +; int prime[maxn]; void marktable(int n){ memset(prime,,sizeof(prime)); ;i<=n;i++){ ]]=i; ;j< ...

  3. HDU - 2222,HDU - 2896,HDU - 3065,ZOJ - 3430 AC自动机求文本串和模式串信息(模板题)

    最近正在学AC自动机,按照惯例需要刷一套kuangbin的AC自动机专题巩固 在网上看过很多模板,感觉kuangbin大神的模板最为简洁,于是就选择了用kuangbin大神的模板. AC自动机其实就是 ...

  4. hdu 3068 最长回文 【Manacher求最长回文子串,模板题】

    欢迎关注__Xiong的博客: http://blog.csdn.net/acmore_xiong?viewmode=list 最长回文                                 ...

  5. bsgs+求数列通项——bzoj3122(进阶指南模板该进)

    /* 已知递推数列 F[i]=a*F[i-1]+b (%c) 解方程F[x]=t an+1 = b*an + c an+1 + c/(b-1) = b(an + c/(b-1)) an+1 + c/( ...

  6. 850. Dijkstra求最短路 II(堆优化模板)

    给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为非负值. 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1. 输入格式 第一行包含整数n和m. 接下来m行每行 ...

  7. 求第N个回文数 模板

    备忘. /*看到n可以取到2*10^9.说明普通方法一个个暴力计算肯定会超时的,那打表呢?打表我们要先写个打表的代码,这里不提供.打完表观察数据,我们会发现数据其实是有规律的.完全不需要暴力的把所有数 ...

  8. HLG 1494网络 (求的割点数目)可做模板

    网络 Time Limit: 1000 MS Memory Limit: 65535 K Total Submit: 103(32 users) Total Accepted: 54(31 users ...

  9. manacher求最长回文子串算法模板

    #include <iostream> #include <cstring> #include <cstdlib> #include <stdio.h> ...

随机推荐

  1. jQuery 对表单、表格的操作及更多应用-简略笔记

    [jQuery 对表单.表格的操作及更多应用] jquery对表单及表格的操作是实际应用中相当广泛. 对于表单的操作,可以实现 (1)获取和失去焦点改变样式: (2)在多行文本框中可以实现网站评论框的 ...

  2. python习题-注册用户程序

    把上周的注册程序改一下,用字典保存# 字典格式如下:# {# "niuhanyang":{"passwd":"123456","r ...

  3. 关于c++中命名空间namespace

    一.定义命名空间: 步骤一:在.h文件中:namespace  ns{.......}//将定义的类和全局变量,全局函数写入花括号内. 步骤二:在.cpp文件中: using namespace ns ...

  4. Convolutional Neural Networks for Visual Recognition 3

    Gradient Computing 前面我们介绍过分类器模型一般包含两大部分,一部分是score function,将输入的原始数据映射到每一类的score,另外一个重要组成部分是loss func ...

  5. binlog之二:怎么样安全删除mysql下的binlog日志

    删除binlog方法 第一种方法: mysql> show binary logs; 查看mysql bin-log日志,除了这个以外的,其它都可以使用删除.mysql> purge bi ...

  6. UML核心元素--包

    包是一种容器,如同文件夹一样,将某些信息分类,形成逻辑单元.包可以容纳任何UML元素,例如用例.业务实体.类图等,也包括子包. 一.分包原则: (1)高内聚:被分入同一个包的元素相互联系紧密,伸至不可 ...

  7. ES6学习之正则扩展

    RegExp正则函数 var reg = new RegExp("abc","igm"); //等价于 var reg = new RegExp(/abc/ig ...

  8. C#使用NPOI将DataGridView内数据写入电子表格Excel

    NPOI能够在用户没有安装office的情况下读写office文件,包括.xls/.doc/.ppt等类型的文件.本文介绍的是使用NPOI库内的函数读写Excel(.xls)内的内容.在使用NPOI之 ...

  9. nodejs调用delphi编写的dll

    公司的业务需要,nodejs要读取文件版本号. 同事要求我用delphi编写dll,以供nodejs调用,结果通过json返回. delphi代码如下: function GetFileInfo(AP ...

  10. CentOS 7 搭建 LAMP

    一.安装httpd 1.yum install httpd -y 2.启动服务:systemctl start httpd 3.设置开机启动:systemctl enable 二.安装mariadb ...