线性代数

 


矩阵与矩阵的基本运算


  • 定义:

  • 行向量:矩阵的某一行所形成的向量。 
  • 列向量:矩阵的某一列所形成的向量。
  • 线性组合与基底:

  • 加法运算: 

  • 减法运算

  • 转置

  •  矩阵乘法

  • 矩阵乘法的分配律
    • A(B+C)=AB+AC
    • (B+C)A=BA+CA
  • 矩阵乘法的结合律
    • ABC=A(BC)
  • 不满足交换律
  • 单位矩阵

  • 逆矩阵

  • 行列式定义

  • 行列式的展开

  • 初等变换

  • 上三角矩阵

  • 下三角矩阵

  • LU分解

  • LU分解与矩阵的行列式

线性基


  • 引入

  • 构造

  • Code
void insert(int v){
	per(i,lim,0)if((v>>i)&1){//如果要放到从下往上数第i行,就要保证v从右到左第i位为1
		if(a[i])v^=a[i];//如果有数就消去v的最高位
		else{
			per(j,i-1,0)if((v>>j)&1)v^=a[j];//能消就消
			rep(j,i+1,lim)if((a[j]>>i)&1)a[j]^=v;//能消就消
			a[i]=v;break;
		}
	}
}
  • 一些题目&trick
    • 本质不同的子集异或和计数
      • 给定 n 个数,第 i 个数为 ai,询问其中有多少个本质不同的子集异或和。n≤1e5,ai ≤1e9
      • 答案就是:2^(最大线性无关集合)=2^(线性基中元素个数)
      • 非线性基中元素都可以通过线性基中元素表示出来
    • 最大/最小子集异或和
      • 给定 n 个数,第 i 个数为 ai,询问其中子集异或和的最大值与最小值。 n≤1e5 , ai≤1e9
      • 最大xor和:将线性基中所有元素异或起来。证明:显然???
      • 最小xor和:如果线性基外没有元素,答案就是线性基内最小的一个元素,否则答案就是0。证明:显然???
    • 异或和为零的子集计数
      • 给定 n 个数,第 i 个数为 ai,询问其中有多少个子集是满足异或和为 0 的。 n≤1e5 , ai ≤1e9
      • 答案就是:2^(线性基外元素个数)
    • [BZOJ3105]
    • [HDU3949]
    • [BZOJ4568]
    • [BZOJ2844]
    • [BZOJ3569]
    • [BZOJ2115]
    • 这么多题.....zbl

常系数齐次线性递推的优化


  • 常系数齐次线性递推

  • 构造状态向量

  • 构造转移矩阵

  • 矩阵乘法的结合律

  • 矩阵快速幂

  • 矩阵的特征多项式

  • Cayley–Hamilton theorem

  • 转移矩阵特征多项式的展开

  • 基于 Cayley–Hamilton theorem 的变形

  • 实际操作 

线性方程组的求解


  • 线性方程组

  • 用矩阵运算来表示线性方程组

  • 高斯消元

  • Code
bool gauss(){
	rep(i,1,n){
		int k=i;
		rep(j,i+1,n)if(fabs(a[j][i])>fabs(a[k][i]))k=j;
		if(fabs(a[k][i])<=eps)return 0;
		if(k!=i)swap(a[k],a[i]);
		double tmp=a[i][i];
		rep(j,i,n+1)a[i][j]/=tmp;
		rep(j,i+1,n){
			tmp=a[j][i];
			rep(k,i,n+1)a[j][k]-=a[i][k]*tmp;
		}
	}
	ans[n]=a[n][n+1];
	per(i,n-1,1){
		ans[i]=a[i][n+1];
		rep(j,i+1,n){
			ans[i]-=a[i][j]*ans[j];
		}
	}return 1;
}
  • 题目
    • BZOJ1778
  • 回顾定义

  • 利用高斯消元完成矩阵求逆

  • 利用矩阵求逆完成线性方程组的求解

  • 题目
    • BZOJ3640
    • BZOJ3253

矩阵树定理


  • 度数矩阵

  • 邻接矩阵

  • 拉普拉斯矩阵

  • Kirchhoff’s theorem

  • 有向图的一般情况

  • BEST 定理

  • 题目
    • ZROJ142
    • BZOJ3659

杂项


  • 循环矩阵

  • 性质

  • 题目
    • BZOJ2510
    • BZOJ3168
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值