9.23

CF526 F Pudding Monsters

由于 \(x\) 和 \(y\) 均为 \(1\) 到 \(n\) 的排列,考虑按 \(y\) 递增排序,得到由 \(x\) 构成的排列。

设区间 \([l,r]\) 的最大值、最小值分别为 \(M,m\)。该区间合法,当且仅当

\[M-m=r-l, \]

即

\[M-m+l-r=0. \]

又因为区间中的数互不相同,所以恒有

\[M-m+l-r\ge 0. \]

因此,固定右端点 \(r\),以左端点 \(l\) 为线段树下标,维护

\[f_l=\max_{i=l}^{r}a_i-\min_{i=l}^{r}a_i+l-r. \]

线段树维护区间最小值及其出现次数。由于 \(f_l\ge 0\),最小值为 \(0\) 时,其出现次数就是对应的合法区间数。

每次将右端点从 \(r\) 扩展到 \(r+1\):

  1. 对所有已有左端点,\(l-r\) 减少 \(1\)。
  2. 使用单调栈维护区间最大值和最小值的变化,将变化转化为区间加。
  3. 加入新的左端点 \(l=r+1\),其对应值为 \(0\)。
  4. 统计当前最小值为 \(0\) 的位置数,并累加到答案中。

P11236 [KTSC 2024 R 1] 水果游戏

首先观察:一段数无法完全合并,当且仅当其中出现了无法完全合并到两旁较小值的峰谷结构。

对于这样的峰谷,分别计算它向左部、右部合并时的贡献,并取最大值。

由于值域为 \(10\),区间两端尚未凑成峰的连续段长度至多为 \(10\)。中间部分的具体内容无需保留,因此可以维护足够精简的信息,支持线段树合并。

考虑用极大值分隔各个峰,并使用栈维护。每插入一个平台:

  • 若处于峰谷中,设平台与两旁较小值的差为 \(d\),平台中元素的个数为 \(c\),则能够完全凑到该值的条件为 \(2^d\mid c\)。
  • 若可以合并,则合并后重新入栈。
  • 若无法合并,则分裂为两个峰。
  • 其余情况直接插入。

在这一过程中,只需保留第一个峰和最后一个峰的具体信息,并维护转移中产生的最大值。

958. 【USsR #1 】彩色括号

将左括号 ( 看作 \(1\),右括号 ) 看作 \(-1\)。一个括号串合法,当且仅当:

  1. 整个序列的权值和为 \(0\);
  2. 任意前缀的权值和均不小于 \(0\)。

单个括号串的修改

将一个括号串修改为合法括号串,可以先处理总和:

  • 若总和大于 \(0\),将尽量靠后的 ( 改成 )。
  • 若总和小于 \(0\),将尽量靠前的 ) 改成 (。

总和归零后,若仍存在权值和小于 \(0\) 的前缀,则成对修改:

  • 将尽量靠前的 ) 改成 (;
  • 将尽量靠后的 ( 改成 )。

这样既保持总和为 \(0\),又尽可能增加中间各个前缀的权值和。

三种颜色的总和限制

设红、绿、蓝三种颜色的括号权值和分别为 \(a,b,c\)。由题意,

\[\begin{cases} a+b+c=0,\\ a+b=0,\\ a+c=0,\\ b+c=0. \end{cases} \]

因此,

\[a=b=c=0. \]

所以,先对每种颜色分别进行上述总和归零的修改。

前缀限制与不等式展开

在完成总和归零后,定义:

  • \(\operatorname{pre}_{i,j}\):前缀 \(j\) 内,颜色 \(i\) 的右括号数量;
  • \(\operatorname{suf}_{i,j}\):前缀 \(j\) 外,颜色 \(i\) 的左括号数量;
  • \(\operatorname{sum}_{i,j}\):前缀 \(j\) 内,颜色 \(i\) 的括号权值和;
  • \(g_i\):颜色 \(i\) 后续进行的成对修改次数。

按“尽量靠前的右括号、尽量靠后的左括号”的方式修改,颜色 \(i\) 对前缀 \(j\) 的权值和增量为

\[2\min\left( g_i,\operatorname{pre}_{i,j},\operatorname{suf}_{i,j} \right). \]

因此,对于红绿括号串,需要满足

\[\begin{aligned} &\operatorname{sum}_{1,j}+\operatorname{sum}_{2,j}\\ &\quad+2\min\left(g_1,\operatorname{pre}_{1,j},\operatorname{suf}_{1,j}\right)\\ &\quad+2\min\left(g_2,\operatorname{pre}_{2,j},\operatorname{suf}_{2,j}\right) \ge 0. \end{aligned} \]

移项得

\[\begin{aligned} &\min\left(g_1,\operatorname{pre}_{1,j},\operatorname{suf}_{1,j}\right) +\min\left(g_2,\operatorname{pre}_{2,j},\operatorname{suf}_{2,j}\right)\\ &\qquad\ge \left\lceil -\frac{\operatorname{sum}_{1,j}+\operatorname{sum}_{2,j}}{2} \right\rceil. \end{aligned} \]

令

\[h_{i,j}=\min\left(\operatorname{pre}_{i,j},\operatorname{suf}_{i,j}\right), \]

\[t_j= \left\lceil -\frac{\operatorname{sum}_{1,j}+\operatorname{sum}_{2,j}}{2} \right\rceil. \]

则限制可以写成

\[\min(g_1,h_{1,j})+\min(g_2,h_{2,j})\ge t_j, \]

等价于

\[\begin{cases} g_1+g_2\ge t_j,\\ g_1+h_{2,j}\ge t_j,\\ h_{1,j}+g_2\ge t_j,\\ h_{1,j}+h_{2,j}\ge t_j. \end{cases} \]

红蓝串、绿蓝串的限制同理。对所有前缀产生的不等式取交,即可得到修改次数的可行范围,并在其中最小化

\[g_1+g_2+g_3. \]

每次成对修改会翻转两个括号,因此这一阶段的修改代价为

\[2(g_1+g_2+g_3). \]

posted @ 2026-09-23 23:41  stilldust  阅读(3)  评论(0)    收藏  举报