2023.9.28 闲话
推歌:新长征路上的摇滚 - 崔健 .
看到某人写的论文《浅谈线性代数与图论的关系》,最后大概说了个这个:
矩阵的迹
对于两张图 \(G_1(V_1,E_1),G_2(V_2,E_2)\),定义其 Tensor 积 \(G(V,E)=G_1\times G_2\) 满足:
如果按字典序排列 \((u,v)\),则对应到邻接矩阵上的关系是 Kronecker 积 \(\bf A=A_1\otimes A_2\) .
其中两个矩阵 \(\bf A,B\) 的 Kronecker 积定义为:
有性质 (Mixed-product):
考察矩阵 \(\bf A,B\) 的特征值 \(\lambda_i,\mu_j\) 和特征向量 \(\bm x_i,\bm y_j\),则:
论文题 (例题 5.4.1)
给若干图 \(G_1,G_2,\cdots,G_k\),求 \(G=G_1\times G_2\times\cdots\times G_k\) 中长为 \(L\) 的回路数量,模 \(998244353\) .
\(\sum|V(G_i)|\le 500\),\(L\le 10^{18}\) .
如果 \(G\) 的邻接矩阵是 \(\bf A\),则要求的就是 \(\operatorname{trace}(\mathbf A^L)\) .
拆开之后就是要对每张图分别求 \(\operatorname{trace}(\mathbf A_i^L)\) 然后乘起来,如果特征值是 \(\lambda_i\),则欲求即为:
令 \(f(z)\) 是特征多项式,\(g(z)=f^{\sf R}(z)\) 是 \(f\) 的系数翻转,则:
使用 Bostan-Mori 算法即可 \(\Theta(n\log n\log L)\) .
特征多项式可以 \(\Theta(n^3)\) 求得 .
好像就是把 2023.9.19 闲话的牛顿恒等式换为 Bostan-Mori,赢 .
所以有啥快速求特征多项式的方法吗???
Kaguya 有一个科技,形如你要在一个区间 \([l,r]\) 找一个对 \((x,y)\) 最大化 \(w_{xy}\) 的题目,可以考虑找出全局支配对 \(x_0,y_0\),然后将区间划分为 \([1,y_0)\) 和 \((x_0,n]\) 两部分分治处理 .
由于某些原因,对于长度小于 \(O(\log n)\) 的区间,暴力处理 .
实际跑起来是非常快的,放几个例题:
静态第六分块
给一个序列 \(\{a_n\}\),每次给一个区间 \([l,r]\),求:
\[\max_{l\le x\le y\le r}\sum_{i\in[x,y]}a_i \]
每次找到全局最大子段和 \(x,y\),将区间划分为 \([1,x)\) 和 \((y,n]\) 分治,小区间暴力即可 .
时间复杂度大概低于 \(O(n\sqrt{n/\log n})\) 但是实际上跑得非常快,如果有人能给出精确复杂度分析可以和我洽谈 .
因为好像展开写做法都是一样的所以后面就不写题解了:
虚空第零加护
给一个序列 \(\{a_n\}\),每次给一个区间 \([l,r]\),求:
\[\max_{l\le x\le y\le r}\operatorname{popcount}(a_x\oplus a_y) \]
三级跳
给一个序列 \(\{a_n\}\),每次给一个区间 \([l,r]\),求 \((x,y,z)\) 满足:
- \(l\le x<y<z\le r\) .
- \(y-x\le z-y\) .
- \(a_x+a_y+a_z\) 最大 .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/17732582.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ