2025.6.19 NOI 模拟赛 题解

比赛

T1 宝石(stones) \(\quad\) CF264D Colorful Stones

题意

给定字符串 \(s,t\),对于状态 \((i,j)\),定义变换 \(f\),满足 \(f_K((i,j))=(i+[s_i=K],j+[t_j=K])\),其中 \(s_i,t_i,K\in\{\text R,\text G,\text B\}\)\(s\) 下标为 \(1\sim n\)\(t\) 下标为 \(1\sim m\),求出从 \((1,1)\) 开始经过若干次变换所能得到的状态的集合(状态中下标不能超出 \(1\sim n\)\(1\sim m\)),\(n,m\le10^6\)

分析

建立一张 \(n\times m\) 个点的图,每个点表示一个状态,连有向边表示状态之间的可达性

以以下数据为例:

AABCB
BACBA

\[\def \U{\uparrow} \def \R{\rightarrow} \def \E{\nearrow} \def \rc{\textcolor{blue}} \def \ps{\textcolor{red}} \begin{matrix} & &\E& &\ps\E&\U &&\U &&\U &\\ \text A&\circ&&\rc\circ&&\circ&\R&\rc\circ&\R&\rc\circ&\R\\ &\U &&\ps\U && &\E&\U && &\E\\ \text B&\circ&\R&\rc\circ&\R&\rc\circ&&\circ&\R&\rc\circ&\\ &\U &&\ps\U &&\U && &\E&\U &\\ \text C&\circ&\R&\rc\circ&\R&\rc\circ&\R&\rc\circ&&\rc\circ&\R\\ & &\ps\E& &\E&\U &&\U &&\U &\\ \text A&\rc\circ&&\rc\circ&&\circ&\R&\rc\circ&\ps\R&\rc\circ&\ps\R\\ &\ps\U &&\U && &\ps\E&\U && &\E\\ \text B&\rc\circ&\ps\R&\rc\circ&\ps\R&\rc\circ&&\circ&\R&\circ&\\ &\text A&&\text A&&\text B&&\text C&&\text B\\ \end{matrix} \]

\(\textcolor{blue}{\circ}\) 标出了可达点,发现都分布在两条红色线围成的图形中,一条为从 \((1,1)\) 开始优先向上走,一条为优先向右走,扫描 \(t\) 的过程中容易双指针维护图形当前截面,从而求出围出图形内总点数,减去其中不可达点即可得到

可证 \((i,j)\) 不可达当且仅当 \((s_{i-1},s_i)=(t_j,t_{j-1})\),对于每个 \(i\) 预处理每个前缀中 \((a,b)\mid a,b\in\{\text R,\text G,\text B\},a\ne b\) 的数量,扫描 \(t\) 的同时减去当前截面中对应的数量

时间复杂度 \(O(n+m)\)

代码

参考

T2 数(puppy)

题意

给定 \(n,k,d,mod\),求出 \(\sum_{i=0}^n\binom ni[i\equiv d\pmod k]\),多测,\(n\le10^9\)\(k\le30,t\le10^3,mod=10^9+7\),或 \(k\le500,t\le10,mod=10^9+7\),或 \(k\le10^3,t\le10^3,mod=100005001\)

分析

答案为

\[\sum_{i=0}^n[x^i](x+1)^n[i\equiv d\pmod k] \]

对于 \(mod=10^9+7\) 的部分,显然上式等于

\[[x^d]((x+1)^n\pmod{x^k-1}) \]

朴素快速幂,暴力卷积,可做到 \(O(tk^2\log n)\),用任意模数卷积可以做到 \(O(tk\log k\log n)\)

对于 \(mod=100005001\) 的部分,考虑单位根反演

\[\begin{aligned} &\sum_{i=0}^n\binom ni[i\equiv d\pmod k]\\ =&\sum_{i\ge 0}[x^{ki+d}](x+1)^n\\ =&\frac 1k\sum_{i=0}^{k-1}\omega_k^{-id}(\omega_k^i+1)^n\\ \end{aligned} \]

直接计算时间复杂度为 \(O(tk\log n)\)

代码

T3 异或图(graph) \(\quad\) P10104 [GDKOI2023 提高组] 异或图

比赛结果

\(30+70+20\)\(\text{rk}9\)

posted @ 2025-06-20 08:00  Hstry  阅读(9)  评论(0)    收藏  举报