The 3rd Universal Cup. Stage 9: Xi'an

A. An Easy Geometry Problem

\(A_i\) 差分一下,每次询问就是问一个形如满足所有 \(i\le r,b_{p-i}=k-b_{p+i}\),线段树维护 hash 即可。复杂度 \(\Theta(n\log n)\)

F. An Easy Counting Problem

因为 \(p\) 是质数,所有根据 Lucas 定理,有 \(\binom{n}{m}=\binom{n \operatorname{mod} p}{m \operatorname{mod} p} \binom{\lfloor \frac{n}{p} \rfloor}{\lfloor \frac{m}{p} \rfloor}\),所以可以先把所有 \(0\le a \le b < p\)\(\binom{a}{b}\) 出现次数统计出来,设为 \(cnt_i\),每次模拟一遍 Lucas 定理,即 \(ans_i \cdot cnt_j \to ans'_{i\cdot j \operatorname{mod} p}\),做 \(k\) 次,可以得到复杂度为 \(\Theta(kp^2)\) 的做法。

注意到卷积形式,可以将下标取离散对数变成加法卷积。具体地,找到 \(p\) 的一个原根 \(g\),那么 \(\forall 0\le i < p,g^i\) 在模 \(p\) 意义下互不相同,然后就可以 NTT 优化到 \(\Theta(kp\log p)\)

M. Random Variables

求值域为 \(m\) 长度 \(n\) 的序列期望众数出现次数。

考虑求众数出现次数 \(\le k\) 的方案数,设 \(f_{i,j}\) 为前 \(i\) 个小球(位置)放到 \(j\) 个盒子(值域)的方案数,转移有 \(f_{i,j} = f_{i-1,j} \times j - f_{i-k-1,j-1} \times j \times \binom{i-1}{k}\)。注意到当 \(k\) 确定时,\(j\) 的范围不会小于 \(j-\lfloor \dfrac{n}{k} \rfloor\),状态数是 \(\Theta(\dfrac{n^2}{k})\) 的,那么总复杂度就是 \(\Theta(n^2 \ln n)\)

posted @ 2024-09-22 22:14  FantasyNumber  阅读(50)  评论(0)    收藏  举报