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\) 步第一次回到原点的方案数,则答案为
令 \(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}(g)\),\(H=\text{EGF}(h)\),则
由于 \(h_0=1\),全过程不需要计算逆元,因此对模数没有要求
时间复杂度 \(O(n^2)\)
T3 NFLS #18324. 斜塔
比赛结果
\(65+35+14\),\(\text{rk}34\)

浙公网安备 33010602011771号