2023.3.2 闲话

STAOI 组了一场 Round 2,我感觉除了 T4 都是菜题,Kaguya 太强了 .

做了一下 OJ 上的「二分图」,然而我清晰的记得

(来源:APJifengc)

所以我做那个是「二分图 fake ver.」?或者是原来那个题单是「二分图 hard ver.」现在这个留下的是「二分图 easy ver.」?

不应该是二分图专题被重新开放了吧我觉得 .

今日推歌:无梦之梦 - はるまきごはん feat. 初音ミク

好听的 .

fun fact:在 joke3579 博客中检索「无梦之梦」能搜到 4 个,全站就 5 个无梦之梦几乎全让 joke3579 占了?


今天发现 Cramer's Rule 的 trick 已经有人落实了,呃呃,顿时感觉 trick 已然是 well-known .

Cramer's Rule:

线性方程组 \(A\bm x=\bm b\),解为

\[\bm x_i=\dfrac{\det(A_i)}{\det(A)} \]

其中 \(A_i\) 是把 \(A\) 的第 \(i\) 列改成 \(\bm b\) 的矩阵 .

然后可以自然得到一个 trick:知道矩阵 \(A\),每次改一行或一列为固定向量,那么可以根据 Gauss 消元得到 \(\bm x\)\(\det(A)\),然后算 \(\det(A_i)=\bm x_i\det(A)\) 即可 .

某题:

树形图求和


本题中定义的树形图相当于根向生成树,可以应用 matrix-tree 定理 .

考虑每条边的贡献,就是算钦定一条边选的生成树数量,单步容斥变成某条边不选的生成树数量 .

令图的 Kirchhoff 矩阵去掉一行一列后是 \(K\),则考察去掉一条边 \((u,v)\)\(K\) 的影响是什么,实际上就是 \(K_{u,u}\gets K_{u,u}-1\)\(K_{u,v}\gets K_{u,v}+1\) .

考虑使用 Cramer's Rule 的 trick,因为每次只改一行所以可以算 \(\det(K_i)=\bm x_i\det(K)\)\(\det(K)\) 是平凡的,考虑如何求 \(\bm x\) .

对于 \(A\bm x=\bm b\),考虑不用 Gauss 消元求 \(\bm x\),直接写出 \(\bm x=A^{-1}\bm b\) .

每次 \(\bm b\) 只会改两项,对于每项扫一遍 \(A^{-1}\) 计算贡献即可 .

这样就 \(\Theta(n^3)\) 了 .

posted @ 2023-03-02 11:50  Jijidawang  阅读(78)  评论(2编辑  收藏  举报
😅​