2025.4.6考试总结
A
莫队板子,不过多赘述。
B
考场上直接用四维莫队做,从 \(l1、r1、l2、r2\) 依次按块排序,得到了50pts的高分?
优化:将块长设为 \(n^{3/4}\) ,复杂度为 \(O(n^{7/4})\) 可以过。
证明过程(来自 \(\rm{deepseek}\))
对于四维莫队,设块长为 \(( B )\),时间复杂度为:
\[T = O\left(nB + \frac{n^4}{B^3}\right) \]为最小化 $ T $,令两项相等:
\[nB = \frac{n^4}{B^3} \implies B^4 = n^3 \implies B = n^{3/4} \]此时时间复杂度为:
\[T = O(n \cdot n^{3/4}) = O(n^{7/4}) \]
结论:对于 \(d\) 维的莫队,一般情况下块长取 \(n^{1-1/d}\) 最优。
C
带修莫队。开的第二道,周六上午刚写出来,各种坑都记忆犹新,没有挂分。
主要思路将时间当作第三维进行莫队,注意数组开 \(1e6+5\),块长为 \(n^{2/3}\)。
D
考场写的暴力。从取模入手,对于一个子串 S[l..r]S[l..r],其数值可以表示为:\(num(l,r)=(S[l]×10^{r−l}+S[l+1]×10^{r−l−1}+⋯+S[r])mod p\)
则题目条件可改为 \(num(l,r)≡0(mod\ p)\),然后通过预处理前、后缀数组快速计算 \(num\)。
此时合法的区间 \(l,r\) 满足 \(suf[l]≡suf[r+1]×10^{-(r−l+1)}mod\ p\)(\(suf\)为后缀数组),离散化后用莫队做即可。

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号