2025.4.1 NOI 模拟赛 题解
T1 NFLS #18079. 愚人节快乐 \(\quad\) P11882 [RMI 2024] 彩虹糖 / Skittlez
题意
一个 \(n\times n\) 的矩阵,\(q\) 次操作在矩阵 \(({^1x_i}\sim {^2x_i},{^1y_i}\sim {^2y_i})\) 中加入 \(k_i\) 个 \(c_i\),求最终每个位置的绝对众数或报告该位置无绝对众数,\(n\le1000,q\le5\times10^5\)
分析
考虑摩尔投票
枚举答案的每个二进制位
对于位置 \((x,y)\),若这一位为 \(1\) 的数量多于这一位为 \(0\) 的数量,则 \((x,y)\) 处的答案(若存在)的这一位为 \(1\),否则为 \(0\)
因此枚举修改 \(({^1x},{^2x},{^1y},{^2y},c,k)\),若 \(c\) 的这一位为 \(1\) 则矩阵 \(({^1x}\sim{^2x},{^1y}\sim{^2y})\) 加 \(k\),否则减 \(k\),若最终位置 \((x,y)\) 的值大于 \(0\),则令答案的这一位为 \(1\),否则为 \(0\)
这一过程容易使用二维前缀和实现,时间复杂度 \(O(\log q(q+n^2))\)
检验答案容易使用二维树状数组实现,时间复杂度 \(O((q+n^2)\log^2 n)\)
总时间复杂度 \(O((q+n^2)(\log^2 n+\log q))\),常数较小,瓶颈在于检验答案
T2 NFLS #18080. Matchus \(\quad\) CF1844H Multiple of Three Cycles
题意
一个排列 \(p_{1\sim 3n}\) 合法当且仅当其形成的所有置换环长都是 \(3\) 的倍数,有一个长为 \(n\) 的排列,每次给定一个位置的值,并求出此时可能的合法排列数量,\(n\le9\times10^5\)
分析
先正向扫描一遍,求出第一个不合法的时刻 \(lp\)(即该时刻及以后,给定的一部分排列中出现了长不为 \(3\) 的倍数的置换环,若不存在这样的时刻则为 \(n+1\)),则该位置及之后的答案都是 \(0\),该位置之前的答案只需要考虑未填充部分即可(以下只考虑求解这一部分),这部分容易并查集实现,时间复杂度 \(O(n\alpha(n))\)
显然某一时刻的答案只与链长 \(\bmod 3=0\)(以下称为一类链)的数量、链长 \(\bmod 3=1\)(以下称为二类链)的数量、链长 \(\bmod 3=2\)(以下称为三类链)的数量有关,设三者为 \((x,y,z)\),答案为 \(dp(x,y,z)\)
先考虑 \(x\ne 0\) 的情况,假设剩余 \(x+y+z-1\) 条都已放置完毕,考虑最后一条一类链,可以选择插入之前 \(x+y+z-1\) 条的任意一条之后,\(x+y+z-1\) 种选择,也可以新开一个置换环,\(1\) 种选择,两者都变为 \((x-1,y,z)\),因此 \(f(x,y,z)=(x+y+z)f(x-1,y,z)\)
因此对于任意 \(x\ne 0\),\(f(x,y,z)=\frac{(x+y+z)!}{(y+z)!}f(0,y,z)\),令 \(g(x,y)=f(0,x,y)\),以下只考虑 \(g\) 的计算
边界为 \(g(0,0)=g(1,1)=1\),\(g(2,2)=8\),容易计算
转移有两种角度
考虑最后一条二类链的放置:若与另一条二类链并为一条三类链,则贡献为 \((x-1)g(x-2,y+1)\);若与一条三类链并为一条一类链,则贡献为 \(y f(x-1,y-1,1)=y(x+y-1)g(x-1,y-1)\);即
考虑最后一条三类链的放置,类似可得
这样可以得到一个 \(O(n^2)\) 的算法
令 \(c_{i,0/1/2}\) 表示第 \(i\) 次操作后三种链的数量,容易在计算 \(lp\) 的同时得到
则实际上用到的 \(g\) 只有 \(g(c_{i,1},c_{i,2})\)
若 \((c_{n,1},c_{n,2})\ne (0,0)\) 则在最后补上一些操作使得最后一组为 \((0,0)\)
由于 \(g(x,y),(x-2,y+1),g(x-1,y-1)\) 中知二得一,\(g(x,y),g(x+1,y-2),g(x-1,y-1)\) 中知二得一,若某一时刻知道 \(g(x,y),g(x+1,y+1)\),就可以推出 \(g(x+2,y-1)\) 和 \(g(x-1,y+2)\),从而得到 \(g(x+3,y)\) 和 \(g(x,y+3)\)
因此 \((x,y,g(x,y),g(x+1,y+1))\) 可以得到 \((x+2,y-1,g(x+2,y-1),g(x+3,y))\) 和 \((x-1,y+2,g(x-1,y+2),g(x,y+3))\),称这两种变换为 \(\text{X}\) 和 \(\text Y\)
初始令 \((x,y,g(x,y),g(x+1,y+1))=(1,1,1,8)\),倒序枚举 \((c_{i,1},c_{i,2})\),则 \((c_{i+1,1},c_{i+1,2})\) 到 \((c_{i,1},c_{i,2})\) 的所以变换都可用若干次 \(\text X\) 和 \(\text Y\) 实现,分讨即可(需要特判 \((c_{i,1},c_{i,2})=(0,0)\) 的情况)
总时间复杂度 \(O(n\alpha(n))\)
T3 NFLS #18081. Little09's Life
比赛结果
\(72+16+10\),\(\text{rk}43\)

浙公网安备 33010602011771号