2026.8.18 模拟赛

https://oj.gxyzh.com/d/hzoj/contest/6a82a87848d6f0332989734a

这场是 UKE-Automation 组的题.

T1 T2 T3 T4
实际得分 100 60 64 24
期望得分 100 60 64 24
能力得分 100 100 64 40

这场 T1 是签,T2 是神秘 Ad-hoc,T3 是数据结构,T4 是树上计数.

久岛鸥

显然可以二分.
由于 \(a_i\) 有可能是负数,因此需要使用 DP.

我们需要 DP 出最长段数与最短段数,卡出范围,判断是否合法.

时间复杂度为 \(O(n\log^2 V)\).

紬文德斯

暴力与正解无关.

发现每个位置的数可以使用 \((i,j,a_{i,j})\) 表示.
那么移动可以记录 \(i,j\) 的偏移量.
逆排列可以交换 \(i\) 与 \(a_{i,j}\) 即可.
记录变化,最后重构即可.

时间复杂度为 \(O(n^2+m)\).

空门苍

显然直接势能线段树可以做到 \(O(n\log^2V+q\log n)\).
但是优化是不容易的.

考虑将区间按位与的操作改成 push_down 的形式.
我们需要维护区间的每个数位上的数字个数.
这样时间复杂度为 \(O(n\log^2 V+q\log n\log V)\).

考虑优化:
我们将维护的数字个数的数组,维护的数字个数进行拆位.
这样我们相当于维护了一个 \(\log V\times \log n\) 的表格.
考虑将 \(\log n\) 作为数组下标.

  • push_up 可以模拟二进制加法,时间复杂度为 \(O(\log n)\).
  • push_down 时直接每一位按位与,时间复杂度为 \(O(\log n)\).
  • 单点修改,只有一位需要操作,直接修改是 \(O(1)\) 的.
  • 区间查询,暴力求出每一位的贡献,时间复杂度为 \(O(\log n)\).

时间复杂度为 \(O(n\log V+q\log^2 n)\).

鸣濑白羽

计算对于一棵树如果不要求分治中心是重心的话,点分树有多少种情况.

设两棵子树 \(u,v\),其点分树的根为 \(x,y\),显然我们只关注点分树上 \(u\to x\) 与 \(v\to y\) 路径上的顺序.

如果我们将顺序定下来,那么点分树也是固定的.
我们只关注 \(u\) 的深度,设 \(dp_{u,i}\) 表示节点 \(u\) 在子树点分树中的深度为 \(i\) 的方案数.

则有如下转移:
设 \(dp_{u,i}\) 与 \(dp_{v,j}\),则可以转移到 \(dp_{u,k}(i\le k\le i+j)\).

\[dp_{u,k}\gets dp_{u,i}\times dp_{v,j}\times \binom{k-1}{i-1} \]

时间复杂度为 \(O(n^3)\).

使用后缀和优化可以做到 \(O(n^2)\).

原题

  1. Distribution of books
  2. Latin Square
  3. 【UNR #5】诡异操作
  4. 芒果冰加了空气
posted @ 2026-08-18 20:28  Zhou_Lemon  阅读(21)  评论(0)    收藏  举报