推歌:新长征路上的摇滚 - 崔健 .
看到某人写的论文《浅谈线性代数与图论的关系》,最后大概说了个这个:
矩阵的迹
对于两张图 G1(V1,E1),G2(V2,E2),定义其 Tensor 积 G(V,E)=G1×G2 满足:
V={(u,v)∣u∈V1,v∈V2}E={((u1,v1),(u2,v2))∣(u1,v1)∈E1,(u2,v2)∈E2}
如果按字典序排列 (u,v),则对应到邻接矩阵上的关系是 Kronecker 积 A=A1⊗A2 .
其中两个矩阵 A,B 的 Kronecker 积定义为:
A⊗B=⎡⎢
⎢
⎢
⎢
⎢⎣a1,1Ba1,2B⋯a1,mBa2,1Ba2,2B⋯a2,mB⋮⋮⋱⋮an,1Ban,2B⋯an,mB⎤⎥
⎥
⎥
⎥
⎥⎦
有性质 (Mixed-product):
(A⊗B)(C⊗D)=(AC)⊗(BD)
考察矩阵 A,B 的特征值 λi,μj 和特征向量 xi,yj,则:
(A⊗B)(xi⊗yj)=(Axi)⊗(Byi)=(λixi)⊗(μiyi)=λiμj(xi⊗yj)
论文题 (例题 5.4.1)
给若干图 G1,G2,⋯,Gk,求 G=G1×G2×⋯×Gk 中长为 L 的回路数量,模 998244353 .
∑|V(Gi)|≤500,L≤1018 .
如果 G 的邻接矩阵是 A,则要求的就是 trace(AL) .
拆开之后就是要对每张图分别求 trace(ALi) 然后乘起来,如果特征值是 λi,则欲求即为:
[zL]∑i11−λiz
令 f(z) 是特征多项式,g(z)=fR(z) 是 f 的系数翻转,则:
[zL]∑i11−λiz=[zL−1]g′(z)g(z)
使用 Bostan-Mori 算法即可 Θ(nlognlogL) .
特征多项式可以 Θ(n3) 求得 .
好像就是把 2023.9.19 闲话的牛顿恒等式换为 Bostan-Mori,赢 .
所以有啥快速求特征多项式的方法吗???
Kaguya 有一个科技,形如你要在一个区间 [l,r] 找一个对 (x,y) 最大化 wxy 的题目,可以考虑找出全局支配对 x0,y0,然后将区间划分为 [1,y0) 和 (x0,n] 两部分分治处理 .
由于某些原因,对于长度小于 O(logn) 的区间,暴力处理 .
实际跑起来是非常快的,放几个例题:
静态第六分块
给一个序列 {an},每次给一个区间 [l,r],求:
maxl≤x≤y≤r∑i∈[x,y]ai
每次找到全局最大子段和 x,y,将区间划分为 [1,x) 和 (y,n] 分治,小区间暴力即可 .
时间复杂度大概低于 O(n√n/logn) 但是实际上跑得非常快,如果有人能给出精确复杂度分析可以和我洽谈 .
因为好像展开写做法都是一样的所以后面就不写题解了:
虚空第零加护
给一个序列 {an},每次给一个区间 [l,r],求:
maxl≤x≤y≤rpopcount(ax⊕ay)
(注:USACO23OPEN Field Day S)
三级跳
给一个序列 {an},每次给一个区间 [l,r],求 (x,y,z) 满足:
- l≤x<y<z≤r .
- y−x≤z−y .
- ax+ay+az 最大 .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】