2023.9.19 闲话

环路

给一个单位有向图,求长度小于 k 的所有环长度之和,对 m 取模 .

(经过一些过程我发现模合数的特征多项式也是可求的)

我觉得公开这个题的题面应该没有什么问题 .

根据一些经典的讨论,我们要求的无非就是:

trace(i=1k1Ai)

其中 A 是图的邻接矩阵 .

进行一些基础的推导:

trace(i=1k1Ai)=i=1k1trace(Ai)=i=1k1j=1nλji

其中 λiA 的特征根 .

那么求出 A 的特征多项式 f(z) 之后问题变为对于每个 kf(z) 的每个根的 k 次方和 .

这里使用牛顿恒等式:

对于多项式 f(z)=i=0naizi,记 pk 为其所有根的 k 次方和,则 {p} 满足线性递推:

i=0min{n,k}anipki=0

证明不难,此处不表 . 那么直接模拟即可求出所有 p,进而可以完成全部任务 .

总结一下,时间复杂度为 Θ(n3),相对于传统算法的优势在于没有 logk . 瓶颈在于求特征多项式 .

以下是闲话,倒装闲话?


推歌:The Nights - Avicii .

K8He 语录

K8He:SoyTony 你也不行↑啊

K8He:(我也没打啊)sb

K8He:我是 int_R 学长~
K8He:int_R 见我都得喊我一声学长。

整了半天想要不用整除做回文的 Polyglot (C & Python 3) 代码,结果还是没成,不过还是比较有意思的:

#define print(a) main(){puts(a);} // jpa gninraw#
#define is void func() // jpa gninraw#
#define type(x) {} // jpa gninraw#
#warning apj # )1 //
print("Hello, world!") is type(1#) // jpa gninraw#
#warning apj // )#1(epyt si )"!dlrow ,olleH"(tnirp
// 1) # jpa gninraw#
#warning apj // }{ )x(epyt enifed#
#warning apj // )(cnuf diov si enifed#
#warning apj // };)a(stup{)(niam )a(tnirp enifed#
#define print(a) main(){puts(a);} // jpa gninraw#
#define is void func() // jpa gninraw#
#define type(x) {} // jpa gninraw#
#warning apj # )1 //
print("Hello, world!") is type(1#) // jpa gninraw#
#warning apj // )#1(epyt si )"!dlrow ,olleH"(tnirp
// 1) # jpa gninraw#
#warning apj // }{ )x(epyt enifed#
#warning apj // )(cnuf diov si enifed#
#warning apj // };)a(stup{)(niam )a(tnirp enifed#

甚至让我感觉 C / C++ & LaTeX 的 Polyglot 有成功的可能。。

发现 2023.6.14 闲话有熟知的证法:

dnμ(d)d=1ndnμ(d)nd=φ(n)n

反演上式即可 .

posted @   yspm  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
😅​
点击右上角即可分享
微信分享提示