线性代数专题

线性代数专题

Problem A. CF963E Circles of Waiting

列出转移柿子,\(f_{i,j}=p1f_{i-1,j}+p2f_{i,j-1}+p3f_{i+1,j}+p4f_{i,j+1}+1\)

直接消元是 \(O(R^6)\) 的。考虑优化,将式子变形,\(f_{i,j-1}=\frac{f_{i,j}-p1f_{i-1,j}-p3f_{i+1,j}-p4f_{i,j+1}-1}{p2}\)

将所有 \((i,j)\) 在圆内且 \((i,j+1)\) 不在圆内的点看作主元,可以得到所有点的主元表示。

然后考虑所有 \((i,j)\) 不在圆内且 \((i,j+1)\) 在圆内的点,满足 \(f_{i,j}=0\),而又知道了 \(f_{i,j}\) 的主元表示,根据这个列方程即可。

\(2R+1\) 个主元,\(2R+1\) 个方程,复杂度 \(O(R^3)\)

https://codeforces.com/contest/963/submission/340355304

Problem B. P5406 [THUPC 2019] 找树

转计数,求权值为 \(w\) 的生成树有多少。

类似普通位运算卷积,构造变换使得 \(FWT(A)_i\cdot FWT(B)_i=FWT(C)_i\),其中 \(C_i=\sum_{j\oplus k=i} A_jB_k\)

先对每条边做 FWT,然后对于每个 \(i\) 矩阵树定理求得 \(FWT(ans)_i\),最后 IFWT 回去即可。

复杂度 \(O(n^32^w)\)

记录详情 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

Problem C. CF1100F Ivan and Burgers

前缀线性基。我们希望每一位贡献的位置尽可能靠后。

对线性基的每一位多维护一位 \(p_i\) 表示这一位是由哪个位置贡献的。假如已经求出 \([1,r]\) 的线性基,我们希望 \(p_i\ge l\) 的位置构成 \([l,r]\) 的线性基。

插入 \(x\) 时,从高到低考虑,若 \(x\) 的第 \(i\) 位有值且 \(p_i>id\),则将线性基的第 \(i\) 位替换出来继续插入。这样保证 \([r,r]\) 的线性基是正确的,而且不影响前面的 \(l\)

离线后可以做到 \(O((n+q)\log V)\)

Submission #341019467 - Codeforces

Problem D. CF724G Xor-matic Number of the Graph

对每个连通块分开考虑。找出一棵生成树 \(T\),把非树边的环扔进线性基里。

经典结论,这些环能异或出所有环,一条非简单路径可以由一条简单路径异或若干个环得到。

\(dis_x\)\(x\) 到根的路径上的异或和,那么 \(x,y\) 之间的一条简单路径的异或和就是 \(dis_u \ {\rm xor} \ dis_v\)

拆位考虑,设线性基大小为 \(|B|\)。若线性基中该位有 \(1\),则贡献为 \(2^w\times 2^{|B|-1}\times \binom n 2\);否则设 \(dis_x\) 该位为 \(1\) 的有 \(c\) 个,贡献为 \(2^w\times 2^{|B|}\times c\times(n-c)\)

Submission #341290386 - Codeforces

posted @ 2025-10-01 10:38  XP3301_Pipi  阅读(9)  评论(0)    收藏  举报
Title