2023.9.19 闲话

环路

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

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

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

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

\[\operatorname{trace}\left(\sum_{i=1}^{k-1}A^i\right) \]

其中 \(A\) 是图的邻接矩阵 .

进行一些基础的推导:

\[\begin{aligned}\operatorname{trace}\left(\sum_{i=1}^{k-1}A^i\right)&=\sum_{i=1}^{k-1}\operatorname{trace}(A^i)\\&=\sum_{i=1}^{k-1}\sum_{j=1}^n\lambda_j^i\end{aligned} \]

其中 \(\lambda_i\)\(A\) 的特征根 .

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

这里使用牛顿恒等式:

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

\[\sum_{i=0}^{\min\{n,k\}}a_{n-i}p_{k-i}=0 \]

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

总结一下,时间复杂度为 \(\Theta(n^3)\),相对于传统算法的优势在于没有 \(\log k\) . 瓶颈在于求特征多项式 .

以下是闲话,倒装闲话?


推歌: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 闲话有熟知的证法:

\[\sum_{d\mid n}\dfrac{\mu(d)}d=\dfrac1n\sum_{d\mid n}\mu(d)\cdot\dfrac nd=\dfrac{\varphi(n)}n \]

反演上式即可 .

posted @ 2023-09-19 18:07  Jijidawang  阅读(92)  评论(0编辑  收藏  举报
😅​