2025.5.12 NOI 模拟赛 题解

比赛

T1 NFLS #P3312. 博鲁夫卡

题意

一张 \(n\) 点无向完全图,给定 \(m\)\((u,v,w)\),表示 \(u\)\(v\) 之间的边权为 \(w\),其余边中 \(i\)\(j\) 之间的边权为 \(|i-j|\),求 \(\text{MST}\)\(n\le10^9,m\le10^5\),多测 \(\sum m\le 5\times10^5\)

分析

假设连续一段 \([L,R]\) 都没有特殊边,则最优情况下一定为相邻两点连边,\([L,R]\) 之外的点连向 \(L\)\(R\) 之一

因此可以把点数缩到 \(O(m)\) 级别,此时每个点 \(i\) 代表区间 \([l_i,r_i]\),若 \(l_i\) 为某一特殊边的端点则令 \(l_i=r_i\)

考虑 \(\text{Boruvka}\) 算法

特殊边直接更新,时间复杂度为 \(O(m\log m)\)

对于剩余部分,需要对于每个 \(u\) 找出前驱和后继的 \(v\) 满足两者不在同一连通块内且两者间没有特殊边直接相连

每个点 \(i\) 处理出 \(i\) 之前和之后第一个与 \(i\) 所属连通块不同的位置,则可 \(O(1)\) 跳过与 \(u\) 同一连通块的极大连续子段,而存在特殊边相连的点数不超过 \(O(deg_u)\),因此跳 \(O(deg_u)\) 次后一定存在解

总时间复杂度 \(O(\sum m\log m)\)

代码

参考

T2 NFLS #P13053. 随机捕食

题意

\(k\) 维空间中,每次选择 \(2k\) 个方向之一移动一个单位长度,对于所有移动 \(n\) 步的方案,求出到达的整点数量之和(同一种方案中重复经过算一次),答案对 \(p\) 取模,不保证 \(p\) 为质数,\(n\le6000\)

分析

一共 \((2k)^n\) 种方案,每种方案的贡献为 \(n+1-\sum_i [\exists j<i,P_j=P_i]\),其中条件的条件表示第 \(i\) 步到达的点之前已经到达过

考虑计算所有方案的 \(\sum_i [\exists j<i,P_j=P_i]\) 之和

设上一次到达相同位置为 \(i-d\) 步,除了中间 \(d\) 步外可以任意行动,令 \(f_d\) 为从原点出发第 \(d\) 步第一次回到原点的方案数,则答案为

\[(2k)^n(n+1)-\sum_{i=1}^n \sum_{d=1}^i f_d (2k)^{n-d}=(2k)^n(n+1)-\sum_{i=1}^n f_i(2k)^{n-i}(n-i+1) \]

\(g_d\) 表示从原点出发经过 \(d\) 步回到原点(不要求为第一次),则 \(f_i=g_i-\sum_{j=1}^{i-1}f_jg_{i-j}\)

\(h_d\) 表示 \(k=1\) 时的 \(g\),显然 \(h_{2i}=\binom{2i}i\),有

\[\text{EGF}(g)=(\text{EGF}(h))^{k} \]

问题转化为任意模数下求 \(\text{EGF}\) 的幂次

\(G=\text{EGF}(g)\)\(H=\text{EGF}(h)\),则

\[\begin{aligned}\notag G=&H^k\\ G'=&H'kH^{k-1}\\ G'H=&kH'H^k\\ G'H=&kH'G\\ \left(\sum_{i=0}^n\frac{g_i}{i!}x^i\right)'\left(\sum_{i=0}^n\frac{h_i}{i!}x^i\right)=&k\left(\sum_{i=0}^n\frac{h_i}{i!}x^i\right)'\left(\sum_{i=0}^n\frac{g_i}{i!}x^i\right)\\ \left(\sum_{i=0}^n\frac{g_ii}{i!}x^{i-1}\right)\left(\sum_{i=0}^n\frac{h_i}{i!}x^i\right)=&k\left(\sum_{i=0}^n\frac{h_ii}{i!}x^{i-1}\right)\left(\sum_{i=0}^n\frac{g_i}{i!}x^i\right)\\ [x^t]\left(\sum_{i=0}^t\frac{g_{i+1}}{i!}x^i\right)\left(\sum_{i=0}^t\frac{h_i}{i!}x^i\right)=&k[x^t]\left(\sum_{i=0}^t\frac{h_{i+1}}{i!}x^i\right)\left(\sum_{i=0}^t\frac{g_i}{i!}x^i\right)\\ \sum_{i=0}^t\frac{g_{i+1}}{i!}\cdot \frac{h_{t-i}}{(t-i)!}=&k\sum_{i=0}^t\frac{h_{i+1}}{i!}\cdot \frac{g_{t-i}}{(t-i)!}\\ \sum_{i=0}^t\binom ti g_{i+1}{h_{t-i}}=&k\sum_{i=0}^t\binom ti h_{i+1} g_{t-i}\\ \sum_{i=1}^{t+1}\binom t{i-1} g_ih_{t+1-i}=&k\sum_{i=1}^{t+1}\binom t{i-1} h_ig_{t+1-i}\\ \sum_{i=1}^t\binom {t-1}{i-1} g_ih_{t-i}=&k\sum_{i=1}^t\binom {t-1}{i-1} h_ig_{t-i}\\ g_th_0=&k\sum_{i=1}^t\binom {t-1}{i-1} h_ig_{t-i}-\sum_{i=1}^{t-1}\binom {t-1}{i-1} g_ih_{t-i}\\ g_t=&\frac1{h_0}\left(k\sum_{i=1}^t\binom {t-1}{i-1} h_ig_{t-i}-\sum_{i=1}^{t-1}\binom {t-1}{i-1} g_ih_{t-i}\right)\\ \end{aligned} \]

由于 \(h_0=1\),全过程不需要计算逆元,因此对模数没有要求

时间复杂度 \(O(n^2)\)

代码

参考

T3 NFLS #18324. 斜塔

比赛结果

\(65+35+14\)\(\text{rk}34\)

posted @ 2025-05-12 20:33  Hstry  阅读(14)  评论(0)    收藏  举报