7.8 模拟赛解题报告

T1

考虑 \(val_i\) 表示 \(i\) 开头长为 \(k\) 的子数组所需的操作,容易用 multiset 维护。那么答案就是

\[\sum\limits_{i=l}^{r-k+1}\min\limits_{j=l}^ival_j \]

看到这个式子,我们有三个切入点:

  1. 区间 \(\min\) 想到笛卡尔树。
  2. \(\min\) 区间的起始位置都是 \(l\),想到对 \(l\) 扫描线。
  3. 最后得到的一定是几个递减的连续段,考虑如何维护,一个想法是倍增。
    如果考虑笛卡尔树,那么我们考虑计算每个 \(val\) 的贡献。这个应该是可以用数据结构维护的。如果考虑扫描线,那么我们需要区间 checkmin 区间求和,离线下来用 segbeats 容易实现。如果考虑直接维护这个连续段,那么考虑单调栈求出 \(f_i, g_i\) 分别表示 \(i\) 所在段下一个段的开头,和 \((f_i-i)val_i\)。然后可以倍增维护。当然直接分块也是可以的。

时间复杂度 \(\mathcal{O}(n\log n)\)\(\mathcal{O}(n\log^2n)\)\(\mathcal{O}(n\sqrt n)\),视实现而定。

T2

难点在于读明白题。没调出来。

显然是要从时间入手的,考虑维护每个时间的速度。读懂题后你发现这个操作一和操作二做的事情就是区间推平,操作二是区间推平成零,容易用 set 维护需要操作的区间,至于推平操作,结合区间询问,考虑值域线段树,那么询问时就是把询问区间拆成若干线段树上的 \(\mathcal{O}(\log n)\) 个区间,按顺序考虑每个区间,如果当前区间会将 \(v\) 变为 \(0\),那么说明其前缀和的最小值 \(<-v\),此时在线段树上二分这个区间。否则,需要将 \(v\) 加上区间和。于是维护 \(sum,mn\) 表示区间和,区间最小前缀和,时间复杂度 \(\mathcal{O}(n\log n)\)。实现较复杂。

T3

非常好的题目。

首先考虑图论建模,\(w(u,v)\) 显然为 \([u, v]\) 的长度减去 \([u, v]\) 包含的非叶子数,容易二维前缀和求出。

这题看上去是一个一般图最大权匹配,但是 \(n=5000\) 说明了需要运用题目的特殊性质,带花树,flow 这些复杂度太爆了肯定不考虑。贪心肯定不太行了,那就只有 DP 一个方向了。然而顺序 DP 和树形 DP 又没什么前途,于是尝试区间 DP。但是问题来了:区间 DP 一定是需要满足匹配要么无交要么包含的,那么是否满足这个性质呢?

我们把一个区间映射到二维平面上的一个点,横坐标为 \(l\),纵坐标为 \(r\),那么 \(w(l, r)\) 就是 \(r-l+1\) 减去 \([l, r]\) 包含的非叶子数,如下图,就是 \((l, r)\) 这个点右下方的点数。

Pasted image 20260708181657

然后考虑 \(a, b, c, d\) 四个数,我们发现 \((a, d), (b, c)\) 右下角的区域包含了 \((a, c), (b, d)\) 的区域,即 \(w(a,d)+w(b,c)\le w(a,c)+w(b,d)\),即相交劣于包含。
Pasted image 20260708181948

于是证明了这个性质,就可以进行区间 DP 了,\(f(l,r)\) 表示 \([l, r]\) 内部的点匹配的最小值,由于区间长度一定是偶数,有转移

\[f(l,r)=\min(f(l+1,r-1)+w(l,r),\min\limits_{k=l+1}^{r-2}f(l,k)+f(k+1,r)) \]

即可做到 \(\mathcal{O}(n^3)\)

然后考虑更进一步。常见的 DP 优化思路中,因为不能带对数因子,数据结构不太好维护,而斜率优化显然不行,可行的只有四边形不等式优化和决策单调性了。

\(op(l,r)\)\(f(l,r)\) 的最小最优决策点,可以证明 \(op(l,r)\le op(l,r+1)\)。若此时可以证明 \(op(l,r)\le op(l+1,r)\),就可以按长度枚举区间,然后根据 \(op(l,r),op(l+1,r+1)\) 的范围限制求出 \(op(l,r+1)\)。时间复杂度 \(\mathcal{O}(n^2)\)。这看似可以通过对称证明,但是很遗憾,由于我们一开始设定的是最小最优决策点,失去的对称性,这个性质并不成立。

那么考虑四边形不等式优化。仍然可以证明 \(f(l,r)\) 满足反四边形不等式,详见官方题解。然后我们可以说明:

\[f(l,r)=\min(f(l+1,r-1)+w(l,r),f(l+2,r)+f(l,r-2)-f(l+2,r-2)) \]

证明如下:
首先根据反四边形不等式,有 \(f(l,r)+f(l+2,r-2)\le f(l+2,r)+f(l,r-2)\),于是证明了 \(LHS\le RHS\)。那么接下来只要证明 \(\min\limits_{k=l+1}^{r-2}f(l,k)+f(k+1,r))\ge f(l+2,r)+f(l,r-2)-f(l+2,r-2)\) 即可。

由于 \(f(l+2,r)\) 可以从 \(f(l+2,k)+f(k+1,r)\) 转移来,所以 \(f(l+2,r)\le f(l+2,k)+f(k+1,r)\)。又根据反四边形不等式,\(f(l,r-2)+f(l+2,k)\le f(l+2,r-2)+f(l,k)\)。两式相加得证。

对于 \(k=l+1\) 的情况上述证明不成立,但是对称到 \(k=r-2\) 即可。

于是可以直接转移,时间复杂度 \(\mathcal{O}(n^2)\)

posted @ 2026-07-08 18:42  循环一号  阅读(17)  评论(0)    收藏  举报