PA 2022 Drzewa rozpinające / AGC060F

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PA 2022 Drzewa rozpinające / AGC060F相关的知识,希望对你有一定的参考价值。

写一遍 dyh 的做法 /kk。

PA 2022 Drzewa rozpinające

根据 Matrix-tree 定理,我们要计算 \\((n-1)\\times (n-1)\\) 的矩阵的 \\(\\det\\). 设 \\(G_i,j = \\gcd(a_i,a_j),D_i,i=\\sum_j G_i,j\\),要计算 \\(\\det(D-G)\\).

由于 \\(\\gcd(a_i,a_j)=\\sum_d|a_i,d|a_j\\varphi(d)\\),设两个 \\((n-1)\\times m\\) 的矩阵 \\(U,V\\)\\(U_i,d=\\varphi(d)[d|a_i],V_i,d=[d|a_i]\\),则有 \\(G=UV^T\\). (\\(V^T\\) 是转置矩阵)

下面考虑使用 Matrix determinant lemma 化简式子。

\\(\\det(D-G) = \\det(D-UV^T) = \\det(I_m-V^TD^-1U)\\det(D)\\).

\\(D\\) 是对角矩阵,\\(\\det\\) 好算。于是问题转化为计算 \\(\\det(I_m-V^TD^-1U)\\).

\\(Q=I_m-V^TD^-1U\\),只有 \\(lcm(i,j)\\le m\\) 的地方可能有值,对这个稀疏矩阵高斯消元,跑的比较快。

AGC 060 F

\\(S\\) 为总点数,如果直接高斯消元是 \\(S^3\\) 的。

考虑设计两个 \\((S-1)\\times m\\) 的矩阵 \\(U,V\\) 使得 \\(G=UV^T\\),并且我们希望 \\(m\\) 能够比较小,这样变形之后可以直接使用 \\(O(m^3)\\) 的高斯消元。

用点减边就能构造这个信息。

以上是关于PA 2022 Drzewa rozpinające / AGC060F的主要内容,如果未能解决你的问题,请参考以下文章

javascript Porównaniedwóchtabliczliczającepowtarzającesięwystąpienia

css Wyłączeniezaznaczaniatekstuzapomocącss

使用正则表达式切换多语言子字符串位置

text Zarządzaniepakietami

java Metodaprzyjmującagraczajako论点

css Hacki dlaroznychprzeglądarek