多校联训数学专题

【NOI2014】随机数生成器

CF923E Perpetual Subtraction

特征值,特征向量,特征多项式

一个线性变换 \(A\),如果存在一个非零向量 \(v\) 使得 \(A\) 作用于 \(v\)\(v\) 只收到了拉伸,那么 \(v\) 就是一个 \(A\) 的特征向量。

显然有 \(Av=\lambda v\)。此处 \(\lambda\) 即为 特征值

做一些推导:

\[Av=\lambda I v \]

\[(A-\lambda I)v=0 \]

因为 \(v\) 非零,所以这个等式不平凡,这意味着 \(A-\lambda I\) 的列线性相关,而线性相关的 \(A-\lambda I\) 也一定能找到对应的 ,于是上式等价于

\[\text{det}(A-\lambda I)=0 \]

这个式子现在只关于 \(\lambda\) 了。我们把 \(F(\lambda)=\text{det}(A-\lambda I)\) 称为特征多项式。

对角化

一个对角矩阵只在其对角线上有值,意味着它对任何向量只有拉伸效果(只有拉伸效果的矩阵也显然一定是对角矩阵),其特征向量即 \((1,0,...,0),(0,1,...,0),...,(0,0,...,1)\) ,它的幂也非常容易计算。所以对角矩阵非常具有研究价值。

介绍对角化之前,先来介绍一下基变换。即如果把基从 \((1,0,...,0),(0,1,...,0),...,(0,0,...,1)\) 变为给定的 \(E^{(1)},E^{(2)},...,E^{(n)}\),某个线性变换 \(A\) 该如何重新表示。

显然某个向量 \(v\) 会表示为:

\[E^{-1}v \]

线性变换 \(A\) 把原来的 \(E^{(i)}\) 变为 \(AE^{(i)}\),在新的语言下,它把 \(E^{-1}E^{(i)}=(0,...,1,...,0)\)(仅在第 \(i\) 位为 \(1\))映射到 \(E^{-1}AE^{(i)}\),所以,\(A\) 应当表示为:

\[E^{-1}AE \]

接下来继续介绍对角化。我们知道 \(A\) 对其特征向量只有拉伸效果,所以如果选取它的一组线性无关的特征向量为基,\(A\) 一定会被表示为一个对角矩阵,而且对角线上的元素就是特征值,这就是对角化。

一个矩阵可对角化等价于它有 \(n\) 个互不线性相关的特征向量。在 \(\text{OI}\) 中一般直接手解即可。


我们设 \(f_{k,i}\) 表示 \(k\) 次过后 \(x=i\) 的概率,则有:

\[f_{k,i}=\sum\limits_{j=i}^n\frac{f_{k-1,j}}{j+1}\\ \]

\(F_k\) 为列向量 \(\begin{bmatrix}f_{k,0}\\\vdots\\f_{k,n}\end{bmatrix}\) ,则有:

\[\begin{bmatrix}1&\frac{1}{2}&\cdots&\frac{1}{n+1}\\0&\frac{1}{2}&\cdots&\frac{1}{n+1}\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\frac{1}{n+1}\end{bmatrix}F_k=F_{k+1} \]

设这个大方阵为 \(D\),输入的列向量为 \(p\)

我们要求的实际上就是 \(D^mp\)

我们发现我们要求它的幂,考虑对角化这个矩阵。

上三角矩阵的特征值就是对角线上的所有元素,所以有:

\[G^{-1}DG=\begin{bmatrix}1&0&\cdots&0\\0&\frac{1}{2}&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\frac{1}{n+1}\end{bmatrix} \]

而特征向量是可以根据定义解得:

\[(D-\lambda I)x=0 \]

\(\lambda=1,\cdots,\frac{1}{n+1}\) 代入,就可以解得 \(G\) 为:

\[\begin{bmatrix}(-1)^{0}{0\choose 0}&(-1)^1{1\choose 0}&\cdots&(-1)^n{n\choose 0}\\0&(-1)^2{1\choose 1}&\cdots&(-1)^{n+1}{n\choose 1}\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&(-1)^{2n}{n\choose n}\end{bmatrix} \]

一列就是一个特征向量。现在考虑求出 \(G^{-1}\) ,二项式反演可得:

\[G^{-1}=\begin{bmatrix}{0\choose 0}&{1\choose 0}&\cdots&{n\choose 0}\\0&{1\choose 1}&\cdots&{n\choose 1}\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&{n\choose n}\end{bmatrix} \]

现在问题变成给一个列向量左乘一个方阵,这个复杂度是 \(O(n^2)\) 的,不能接受,但我们的方阵比较特殊。

先考虑 \(Gp\) 的计算,设 \(q=Gp\),则有

\[\begin{aligned} q_i=&\sum\limits_{k=i}^n(-1)^{i+k}{k\choose i}p_k\\ =&\sum\limits_{k=i}^n(-1)^{i+k}\frac{k!}{i!(k-i)!}p_k\\ =&\frac{(-1)^i}{i!}\sum\limits_{k=i}^n(-1)^{k}k!p_k\frac{1}{(k-i)!}\\ \end{aligned} \]

容易发现这是一个减法卷积可以 \(\text{NTT}\) 优化,左乘 \(G^{-1}\) 的计算和这个区别不大,就不细说了,左乘 \((G^{-1}DG)^m\) 的计算就是给每一项乘上对角线上对应的那一个数即可。

点击查看代码

Gym 102978A Ascending Matrix

Gym 103415J Cafeteria

Gym 103415K Magus Night

[TJOI2019]唱、跳、rap和篮球

CF908D New Year and Arbitrary Arrangement

CF750G New Year and Binary Tree Paths

\(f_{i,j}\) 表示有 \(i\)\(A\)\(j\)\(AB\) 期望长度。目标状态是 \(f_{1,0}\) ,因为 \(f_{0,0}\) 会转移自己。容易得到方程:

\[f_{i,j}= \dfrac{pa}{pa+pb} \times f_{i+1,j} + \dfrac{pb}{pa+pb}\times f_{i,j+i} \]

初始转态是 \(f_{i,j}(i+j\geqslant k)\),因为再加一个 \(B\) 就完成了。

求:

\[\frac {pb}{pa+pb}*\sum_{a=0}^\infty(i+j+a)*(\frac {pb}{pa+pb})^a \]

代入公式:

\[\frac {pb}{pa+pb}* (\sum_{a=0}^\infty(i+j+a)*(\frac {pa}{pa+pb})^a)\]

\[=\frac {pb}{pa+pb}*(\frac {i+j}{1-\frac {pa}{pa+pb}}+\frac {\frac {pa}{pa+pb}-\frac {pa}{pa+pb}^{\infty+1}}{(1-\frac {pa}{pa+pb})^2}-\frac{(i+j+n)*\frac {pa}{pa+pb}^{\infty+1}}{{1-\frac {pa}{pa+pb}}}) \]

\[=\frac {pb}{pa+pb}*(\frac {i+j}{\frac {pb}{pa+pb}}+\frac {\frac {pa}{pa+pb}-\frac {pa}{pa+pb}^{\infty+1}}{(\frac {pb}{pa+pb})^2}-\frac{(i+j+n)*\frac {pa}{pa+pb}^{\infty+1}}{{\frac {pb}{pa+pb}}}) \]

\[=i+j+\frac {\frac {pa}{pa+pb}-\frac {pa}{pa+pb}^{\infty+1}}{\frac {pb}{pa+pb}}-(i+j+n)*\frac {pa}{pa+pb}^{\infty+1} \]

\[=i+j+\frac {\frac {pa}{pa+pb}}{\frac {pb}{pa+pb}}=i+j+\frac {pa}{pb} \]

点击查看代码

CF653G Move by Prime

CF1477F Nezzar and Chocolate Bars

CF643F Bears and Juice

ARC138E Decreasing Subsequence

CF1188E Problem from Red Panda

posted @ 2022-06-12 20:49  一粒夸克  阅读(98)  评论(0编辑  收藏  举报