2026.7.29 模拟赛

T1

给定一张 \(n\) 个点 \(m\) 条边的图,你需要将其中的点划分为两个点集,使得两个点集的导出子图中度数为偶数的点的总和尽可能大,并构造方案。
\(1 \le n \le 2000,1 \le m \le \dfrac{n(n-1)}{2}\)

糖糖题。观察大样例注意到答案 \(=n\),若点 \(i\) 划分到第一个点集记为 \(a_i=0\),否则记为 \(a_i=1\),那么对每个点 \(u\)\(\bigoplus\limits_{(u,v) \in E} (a_v \oplus a_u) = 0\),即 \(\bigoplus\limits_{(u,v) \in E} a_v = a_u(d_u \& 1)\),高斯消元解方程即可,时间复杂度 \(O\left(\dfrac{n^3}{w}\right)\)

T2

定义 \(f(n,k)\) 为在如下游戏中先手必胜则为 \(1\),否则为 \(0\)

  • \(n\) 颗石子,先后手轮流取,先手第一次固定只能取 \(1\) 颗,之后假设上一人取了 \(x\) 颗,则这次可以取 \([1,x+k]\) 颗,取完者获胜。
    给定 \(k,l,r\),求 \(\sum\limits_{i=l}^r f(i,k)\)。多测。
    \(1 \le T \le 10^4,1 \le k,l,r \le 10^{18}\)

待补。

T3

给定一棵 \(n\) 个点的树,点有点权,初始为 \(0\),有 \(m\) 次如下修改:

  • 给定 \(u,v,k,w\),将 \(u \to v\) 路径上所有满足 \(k | \text{dis}(u,x)\)\(x\) 的点权加上 \(w\)
  • 给定 \(u,v,k,w\),将 \(u \to v\) 路径上所有满足 \(k | \text{dis}(u,x)\)\(x\) 的点权变为 \(w\)
  • 给定 \(x\),查询 \(x\) 的点权。
    \(1 \le n,m \le 2 \times 10^5\)。4s,256MB。

发现 \(k\) 很大时修改的点数不会很多,自然考虑对 \(k\) 进行根号分治,在 \(k>B\) 时暴力跳即可,考虑 \(k \le B\) 怎么做。

我们可以对于每个 \(k\),令 \(u\) 连向 \(u\)\(k\) 级祖先,那么每个修改就变成了两条链上的修改。但是问题是赋值操作比较难处理,于是我们考虑处理出每个点最后一个被赋值的时刻,再加上这个时刻到查询时刻之间的加法操作的值即可。

\(n,m\) 同阶,于是问题转为 \(O(n \log n)\) 次区间覆盖与 \(O(n \log n)\) 次区间加,\(O(nB)\) 次查询,使用分块平衡复杂度,设分块块长为 \(S\),复杂度为 \(O(nB+\dfrac{n^2}{B}+nS\log n + \dfrac{n^2 \log n}{S})\),分别取 \(B=\sqrt n,S=\sqrt{\dfrac{n}{\log n}}\) 即可,时间复杂度 \(O(n \sqrt{n \log n})\)

然后你发现空间开不下,因此你离线所有询问后在最外层枚举 \(k\) 处理所有 \(k\) 为这个值的询问即可令空间降为 \(O(n)\)

posted @ 2026-07-29 19:34  luqyou  阅读(11)  评论(0)    收藏  举报