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)\).
时间复杂度为 \(O(n^3)\).
使用后缀和优化可以做到 \(O(n^2)\).

浙公网安备 33010602011771号