2025.12.16 省选模拟
记录
芝麻糊第一场省选模拟。
\(100+100+0=200\ \ \text{rk}8\) 感觉打的好像有点牛。但是摆了没写 T3 有点不牛。

开场 \(10\text{min}\) 判断 T2 是我可能会的串串?看着就像 SAM。然后就胡了一个需要树分块的 \(O(n\sqrt{n}\log n)\) 的做法。好像能平衡到单根号,但是不重要。看完部分分发现比 \(n^2\) 多了 \(0\) 分。
上个厕所冷静一会发现可以多一步转化,把这个树分块要维护的信息用倍增跳来换掉。所以会了 \(O(n\log n)\) 做法。但是比较不牛的是不会写 SAM。所以艰苦卓绝的学了半天之前写的 SAM 模板。然后写了这个单 \(\log\) 做法。但是比较搞笑的是我调不出来。然后开始颓。
颓了一会想到可以再多推一步,然后用树上前缀和维护信息。而且极其好写,所以就轻松写完了疑似是 \(O(n)\) 的做法。
旁边大手子 hxq 找规律过了 T1。大神啊。
跑的飞快,直接开始爽颓。颓了一会发现自己就一题有分不行。遂看 T1。发现这个定理我咋疑似在未知时间见过,套上去后不久变成求 \(n\) 的所有约数的欧拉函数之和吗。这不是唐完了,推一下式子不久结束了。写一下过了。
还剩半小时,继续颓颓颓。比较搞笑的是神人芝麻糊 OJ 明明确认了提交但是没给我交上去。找后台老师帮我 resubmit 了一下。
题解
A 小S玩矩阵
原题:未知?
题意:给定一个正帧数 \(n\)。一个由 \(n\) 的所有因子构成的递增序列 \(\{x_m\}\)。构造一个 \(m\times m\) 的矩阵。使得 \(a_{i,j}=\gcd(x_i,x_j)\)。问你这个矩阵的行列式。
首先一个我知道的引理表明:
设 \(S = \{x_1, x_2, \dots, x_m\}\) 是一个因子闭合的集合(即 \(\forall x \in S\),若 \(d|x\),则 \(d \in S\)),且 \(x_1 < x_2 < \dots < x_m\)。定义矩阵 \(A\) 为 \(A_{i,j} = \gcd(x_i, x_j)\),则 \(\det(A) = \prod_{i=1}^m \phi(x_i)\)。
证明:
利用欧拉函数的性质:\(n = \sum_{d|n} \phi(d)\)。
我们可以将 \(\gcd(x_i, x_j)\) 写为:
由于 \(S\) 是因子闭合的,所有 \(x_i\) 的因子都在 \(S\) 中。我们可以构造一个 \(m \times m\) 的矩阵 \(U\),其中:
构造对角矩阵 \(\Lambda\),其中 \(\Lambda_{i,i} = \phi(x_i)\)。
考虑矩阵乘积 \((U \Lambda U^T)_{i,j}\):
因此,\(A = U \Lambda U^T\)。
由行列式的乘法性质:\(\det(A) = \det(U) \det(\Lambda) \det(U^T) = (\det(U))^2 \det(\Lambda)\)。
由于我们将 \(x_i\) 从小到大排序,\(x_j | x_i\) 意味着 \(x_j \le x_i\)。当 \(i=j\) 时,\(x_i | x_i\) 为真,故 \(U_{i,i}=1\);当 \(j > i\) 时,\(x_j > x_i\),不可能有 \(x_j | x_i\),故 \(U_{i,j}=0\)。
所以 \(U\) 是一个对角线全为 1 的下三角矩阵,\(\det(U) = 1\)。
故:
现在问题转化为计算 \(n\) 的所有约数的欧拉函数之积。
设 \(n = \prod_{i=1}^t p_i^{k_i}\)。
定义函数 \(F(n) = \prod_{d|n} \phi(d)\)。
由于 \(\phi\) 是积性函数,若 \(n = A \cdot B\) 且 \(\gcd(A, B) = 1\),则 \(n\) 的因子可以唯一表示为 \(d_A \cdot d_B\) 的形式,其中 \(d_A|A, d_B|B\)。
其中 \(\tau(n)\) 表示 \(n\) 的约数个数。
对于 \(n = \prod_{i=1}^t p_i^{k_i}\),我们可以推广上述结论:
其中 \(N_i\) 是除去 \(p_i^{k_i}\) 后剩余部分的约数个数,即 \(N_i = \prod_{j \neq i} (k_j + 1) = \frac{\tau(n)}{k_i + 1}\)。
我们需要计算 \(F(p^k) = \prod_{j=0}^k \phi(p^j)\)。
将 \((p-1)\) 和 \(p\) 的幂次分开统计:
- \((p-1)\) 出现了 \(k\) 次(从 \(p^1\) 到 \(p^k\))。
- \(p\) 的指数和为 \(0 + 1 + 2 + \dots + (k-1) = \frac{k(k-1)}{2}\)。
所以:

浙公网安备 33010602011771号