2026.7.18 考试总结
总结
估:100 + 100 + 100 + 0
实:100 + 100 + 100 + 0 rk1
感谢 fsfdgdg 的麦当劳。/bx/bx/bx/bx
Max History
简化版题意:给定长度为 \(n\) 的数列 \(\{a_n\}\) ,定义数列的权值为 \(\sum^n_{i=1}[a_i>\max^{i-1}_{j=1}a_j]a_i\) ,询问该数列的所有 \(n!\) 种置换构成的数列权值和。答案对 \(10^9+7\) 取模。注意不算最大值的贡献.
考虑拆贡献到每一个数。假设大于等于 \(x\) 的数不包括自己有 \(cnt\) 个,那么我们算 \(cnt\) 排在 \(x\) 后面的方案数,那么我们一个一个加,加的第 \(i\) 个只能在可以插的 \(i + 1\) 个空中选后 \(i\) 个,那么显然有方案数:
那么设 \(x\) 有 \(c\) 个,那其贡献就应为 \(\frac {x \times c \times n!} {cnt + 1}\)。把每个数贡献加起来即可。做完了。
Wrong Answer on test 233 (Hard Version)
下文 \(a_{i + 1}\) 在 \(i = n\) 时均表示 \(a_{1}\)。我们发现具体的值是不重要的。设有 \(sum\) 个位置满足 \(a_i \ne a_{i + 1}\),\(n - sum\) 个位置满足 \(a_i = a_{i + 1}\)。对于 \(a_i = a_{i + 1}\) 原序列 \(h_i\) 右移后不会造成得分的变化,随便选。对于 \(a_i \ne a_{i + 1}\) 若 \(h_i = a_{i + 1}\) 得分加一等于 \(a_i\) 得分减一,都不等于而为剩下的 \(k\) 个位置得分没影响,我们枚举 \(t\) 表示 \(t\) 个位置造成了得分的变化,有:
第二维 \(i\) 枚举的得分加一的位置。我们注意到 \(\sum_{i = \lfloor \frac t 2 \rfloor + 1} ^ t \binom{t}{i}\) 可以快速地求,当 \(t\) 为奇数显然为 \(2 ^ {t - 1}\),偶数为 \(\frac {2 ^ t - \binom{t}{\lfloor \frac{t}{2} \rfloor}} 2\)。直接算就做完了。
Expected Components
简化版题意:定义长度为 \(n\) 的数列 \(\{a_n\}\) 的权值为 \(\sum^n_{i=1}[a_i\neq a_{i~\text{mod}~n+1}]\) ,定义数列 \(\{a_n\}\) 与数列 \(\{b_n\}\) 本质相同当且仅当两者能经过若干次循环位移后变得完全一致。给定长度为 \(n\) 的数列 \(\{a_n\}\) ,询问从该数列的所有 \(n!\) 种置换构成的所有本质不同数列中等概率随机选取一个,其权值的期望。答案对 \(998244353\) 取模。
设每个数出现次数为 \(buc_i\)。由于要求循环不同构,我们考虑枚举循环节长度 \(i\),显然有 \(x = \frac m i\) 个,其中应有 \(x \mid \gcd(buc_1, buc2, \dots) \land i \mid n\),那么有用的 \(i\) 最多只有 \(240\) 个,所以直接枚举。对于一个循环节里面,设 \(bc_i = \frac {buc_i} x\) 表示其中 \(i\) 元素个数,我们分别算总方案数和总贡献,一除就是期望。对于总方案数 \(tot\) 是 \(\binom{i}{bc_1, bc_2, \dots}\),对于总贡献,现设每个位置都有贡献然后减去不合法的,有:
前面那坨 \(tot \times i\) 是好算的,把后面的领出来化一下:
把 \(\frac {bc_c!} {(bc_c - 2)!}\) 拆开,由于原式与位置 \(k\) 无关可以化成:
记 \(t = \binom{i - 2}{bc_1, bc_2, \dots}\) 并提出来:
记 \(sum = \sum_c bc_c (bc_c - 1)\),有答案:
4 个东西都可以 \(O(n)\) 算。我们算其对于总方案数 \(s\) 和总贡献 \(ans\) 的贡献,直接加是不对的,应为对于 1 2 1 2 和 2 1 2 1 会算成两种,那么各应乘上 \(\frac {\varphi(i)} n\)。做完了,具体细节看代码。
Sum Over Subsets
首先 \(\gcd = 1\) 很烦,莫反成倍数为 \(d\) 的答案,记为 \(f_d\),答案则为 \(\sum \mu(d) f(d)\)。那么现在就变成,对于集合 \(s\),算 \(\sum_{A \sub s} \sum_{x \in A} x \sum_{x \in B} x\),那么我们注意到其实就转化成了乘积之和。对于 \(a_i ^ 2\) 的贡献,选择 \(|s| - 1\) 中一个作为 \(A\) 有 \(B\) 没有的,剩下随便选 \(\sum_i a_i ^ 2 (|s| - 1) 2 ^ {|s| - 2}\)。对于 \(a_i \times a_j\) 的情况,若两者都属于 \(A\) 和 \(B\),那么有贡献 \(\sum_{i, j} a_i \times a_j (|s| - 2) 2 ^ {|s| - 3}\)。否则 \(b\) 不包含 \(a_i\),其他随便选有贡献 \(\sum_{i, j} a_i \times a_j 2 ^ {|s| - 2}\)。
那么维护一下 \(|s|\) 和 \(|\sum_i a_i|\) 和 \(|\sum_i a_i ^ 2|\) 就做完了。

浙公网安备 33010602011771号