2025.5.23 NOI 模拟赛 题解
T1 NFLS #P12517. 王国 \(\quad\) CF1184B3 The Doctor Meets Vader (Hard)
题意
一张 \(n\) 点 \(m\) 边的无向图,有 \(s\) 人为攻方,其中第 \(i\) 人在 \(x_i\) 处,攻击力为 \(a_i\),攻击范围为 \(f_i\),价格为 \(p_i\),有 \(b\) 人为守方,其中第 \(i\) 人在 \(x_i\) 处,防御力为 \(d_i\),收益为 \(g_i\),攻方每人只能选择恰好一个守方,要求双方之间距离不超过攻方的攻击范围,且攻方的攻击力不小于守方的防御力,收益为守方收益减去攻方价格(可能为负),守方可以被重复选择,存在 \(k\) 条限制形如选择了攻方第 \(i\) 个人就必须选择第 \(j\) 个人,选出攻方的一个子集使得收益最大(由于攻方必须选择一个合法的守方,若无法选择则这个攻方无法被选),求收益的最大值,\(n\le100,m\le10^4,s,b\le2\times10^5,k\le1000\)
分析
显然攻方每个人之间独立,因此容易拆为两个子问题:求出攻方每人的最大收益,选择一个合法的最优子集
对于第一个子问题,求出全源最短路,对于每个点将这个点上的守方按防御力排序,对于攻方一个人,枚举它能到达的每个点,分别二分出最大的前缀,前缀中收益最大的即为最优,若所有前缀都为空则这个攻方收益为 \(-\infty\),这部分时间复杂度为 \(O(n^3+b\log b+sn\log b)\)
对于第二个子问题,限制建出图后,孤点直接判断即可,删去孤点后剩余连通块大小之和为 \(O(k)\) 的,对于每个连通块都相当于求最大权闭合子图,网络流即可,这部分时间复杂度 \(O(s+k\sqrt k)\)
总时间复杂度 \(O(n^3+b\log b+sn\log b+k\sqrt k)\)
T2 NFLS #P1280. 取石子游戏
题意
对于 \(a_{1\sim n},c_{1\sim n}\) 和 \(m\) 进行博弈:操作方可选择一个 \(i\) 和 \(1\le x\le a_i\),令 \(a_i\gets a_i-x\),或选择 \(S\subseteq \{1,2,\cdots,n\}\) 满足 \(c_u\mid u\in S\) 都相同,从 \(a_u\mid u\in S\) 中总计减去一定量满足减去的总和在 \([1,m]\) 中,给定 \(m,c_{1\sim n}\) 和 \(n\) 个数集 \(A_{1\sim n}\),对于所有 \(a_{1\sim i}\mid \forall i,a_i\in A_i\) 求出 \(a,c,m\) 博弈先手必胜的数量,\(n,m\le20,|A_i|\le10^5\)
分析
考虑给定 \(a\) 后如何判断是否先手必胜
将 \(a_i\) 根据 \(c_i\) 划分为若干集合,则集合之间独立,总体的 \(\text{SG}\) 函数等于每种颜色的值的异或和
因此只考虑 \(c\) 都相同的情况,令 \(b_i(m+1)+c_i=a_i\),\(c_i\in[1,m]\),可证 \(\text{SG}\) 函数值为 \((m+1)\bigoplus b+(\sum c)\bmod (m+1)\)
考虑每个 \(c\) 的等价类,求出其生成函数后异或卷积即可得到答案,考虑如何求出一个等价类的生成函数
令 \(f_{i,j,k}\) 表示当前等价类前 \(i\) 个数中,\((\sum c)\bmod (m+1)=i\),\(\bigoplus b=j\) 的方案数,从 \(f_{i-1,\ast,\ast}\) 转移到 \(f_{i,\ast,\ast}\) 时,令 \(g_{j,k}\) 表示 \(A_i\) 中 \(b=j,c=i\) 的数量,则 \(f_{i,j}=\sum_{a+b\equiv j}f_{i-1,j}\ast g_b\)
答案容易由 \(f_{n,\ast,\ast}\) 得到
\(f\) 第二维为 \(O(\frac Vm)\) 的,因此总时间复杂度为 \(O(nV\log V+nm\frac Vm\log\frac Vm+nm^2\frac Vm)=O(nV\log V+nmV)\)
T3 NFLS #18398. 好的点
比赛结果
\(100+1+40\),\(\text{rk}41\)

浙公网安备 33010602011771号