首页 > 其他分享 >Determinant of $A+Bz$

Determinant of $A+Bz$

时间:2023-09-23 14:24:04浏览次数:31  
标签:Determinant 多项式 矩阵 Bz 高斯消 lambda

// created on 23.09.22

目录

Determinant of \(A+Bz\)

You are given two \(n\times n\) matrices \(A\) and \(B\) .
For each \(k=0,1,\cdots,n\) , you need to calculate \(f_k=[z^k]\det(A+Bz)\bmod 998244353\) .
\(n\leq 500\) 。

矩阵 \(A\) 的特征多项式为:\(f_A(\lambda)=|\lambda I-A|\) 。使得 \(f_A(\lambda)=0\) 的 \(\lambda\) 称为矩阵 \(A\) 的特征值。

先尝试解决矩阵的特征多项式问题。一个重要的性质是,特征多项式在基变更下不变:若存在可逆方阵 \(C\) 使得 \(B=P^{-1}AP\) 则 \(f_A(\lambda)=f_B(\lambda)\) 。

我们通过对高斯消元作出修改达成目的。一般的高斯消元可以看出,给出 \(A\) 求出 \(PA\),后者是一个上三角矩阵。但此时差了一个 \(P^{-1}\) 。

注意到而高斯消元中,我们要做的只有交换两行,以及将一行乘 \(k\) 加到另一行。它们对应的初等矩阵的逆,在整个式子右侧乘上的结果是很好预测的(都是对列操作)。

于是,我们在 \(P\rightarrow xP\) 时同时执行 \(P^{-1}\rightarrow P^{-1}x^{-1}\),并且实时维护 \(PAP^{-1}\) 。我们的目标变为消出上海森堡矩阵(即 \(j-i<-1\) 的 \((PAP^{-1})_{i,j}\) 都为 \(0\),需要和上三角矩阵区分)。显然易见,这总是可以完成的。

接下来的任务就变成求上海森堡矩阵的特征多项式了(记 \(B=PAP^{-1}\))。

记 \(p_i(\lambda)\) 为保留前 \(i\) 行前 \(i\) 列时,子方阵的特征多项式。\(i\rightarrow i+1\) 时,讨论 \(i+1\) 要么列的选择方式,可以得到:

\[p_i(\lambda)=(x-A_{i,i})p_{i-1}(x)-\sum_{j=1}^{i-1}A_{i-j,i}p_{i-j-1}(\lambda)\prod_{k=i-j+1}^{i}A_{k,k-1} \]

于是以 \(O(n^3)\) 的代价我们求出了 \(f_A(\lambda)=|\lambda I-A|\) 。

提交记录:Submission #186123 - QOJ.ac

现在的问题是解决 \(|A+Bz|\) 。假设 \(B\) 满秩,高斯消元消成 \(I=MB\),那么 \(\det(A+Bz)=\det(M^{-1})\det(MA+MBz)\),问题变为求特征多项式。否则,我们消元的过程中,如果消不下去了,就将这一列的 \(A\) 乘 \(z\) 搬过来(然后最后除掉这个 \(z\))。如果仍然消不下去,那么 \(|A+Bz|\) 就是 \(0\) 。

提交记录:Submission #186128 - QOJ.ac

标签:Determinant,多项式,矩阵,Bz,高斯消,lambda
From: https://www.cnblogs.com/qiulyqwq/p/17724333.html

相关文章

  • BZOJ 3509
    题目链接description给定一个长度为\(n\)的数组\(a\),求有多少对\(i,j,k(1\leqi<j<k\leqn)\)满足\(a_k-a_j=a_j-a_i\)\(n\leq10^5\)值域大小3e4.solution三个数,看起来就不好用数据结构维护。\(2a_j=a_i+a_k\)可以当做多项式两项的指数相加得到指数为\(2a_j\)的......
  • BZOJ 3451
    题目链接description厉害题。给定一棵树,按照题面要求求一个错误点分治的期望执行次数。(不想描述题面了qwq)solution考虑拆开计算每个点期望几层点分治后被删除。这个期望值显然就是它对答案的贡献。我们不妨以这个点为根,那么相当于要求每次删除一个未被删除的点的子树,求删完......
  • CQBZ Round 12
    首先,在本次考试中,我深刻认识到了常数优化的重要性。我决心改掉#defineintlonglong的坏习惯。我们不能保证评测机的速度,我们只能保证自己代码的优秀。`同时我要下定决心更改自己的思维方式。我发现自身在做题时应合理利用时间,创造价值,不能出现T6这种写2.5h没拿一分的情况......
  • Linux:文件压缩解压gz、tar.gz、tar.xz、tar.bz2、tgz、zip
    (目录)tar#.tartar-xvfarchive.tartar.gz、tgz1、压缩tar-zcvf压缩文件名.tar.gz被压缩文件名#不保留文件路径tar-zcvf压缩文件名.tar.gz-C压缩前切换目录被压缩文件名参考如何在不保留目录结构的情况下tar目录?2、解压tar-zxvf压缩文件名.tar.gz#......
  • BZOJ3309 DZY Loves Math
    题目大意对于正整数\(n\),定义\(f(n)\)为\(n\)所包含质因子的最大幂指数。例如\(f(1960)=f(2^3\times5^1\times7^2)=3\),\(f(10007)=1\),\(f(1)=0\)。给定正整数\(a,b\),求下式的值:\[\sum^{a}_{i=1}\sum^{b}_{j=1}f(\gcd(i,j))\]推导首先记\(n=\min(a,b),m=\max(a,b)......
  • centos7中 configure: error: libbzip2 development files not found
     001、configure:error:libbzip2developmentfilesnotfound 002、解决方法[root@pc1test01]#yum-yinstallbzip2-devel。  ......
  • jmeter详解-线程组详解(9)-bzm - Free-Form Arrivals Thread Group
    bzm-Free-FormArrivalsThreadGroup介绍: 顾名思义,相当于自由形式的ArrivalsThreadGroup,它只是提供了自由形式的时间表的能力。相当于我们可以更灵活的控制 每分钟/每秒钟的请求数。页面说明:ThreadsSchedule(线程场景):Startvalue:开始时的用户数Endvalue:结束时......
  • jmeter详解-线程组详解(8)-bzm - Arrivals Thread Group
    bzm-ArrivalsThreadGroupArrival:到来,抵达介绍这个线程组使用“arrivals”调度作为一种表达负载的方式。“arrivals”表示线程迭代开始。如果所有现有线程在迭代过程中都很忙,它将创建新线程。注意,恒定的到达率意味着增加并发性,所以要小心你输入的值。使用“ConcurrencyLimi......
  • CQBZ Round 10
    CQBZround10心态考爆炸了,emmmm。最大挂点:T5原因:主要:对二项式反演本质理解有问题。次要:不会及时止损。jump不妨设\(h_0=0\),且固定这个位置,则原问题化为找到一种排列,求出:\[\max\left\lbrace\sum_{i=1}^n(h_i-h_{i-1})^2\right\rbrace\]将其拆开,化简,可以得到:\[\begin{al......
  • [BZOJ 4361] isn
    简述题意给出一个长度为\(n\)的序列\(A(A_1,A_2,\dots,A_n)\)。如果序列\(A\)不是非降的,你必须从中删去一个数,并重复这一操作,直到\(A\)非降为止。求有多少种不同的操作方案,答案模\(10^9+7\)。题面转换......