VP。

IDDiffDescriptionSolutionPenaltyReview
CMedium空序列 cc,任意操作:花费 XX,将 AA 的所有元素按顺序追加到 cc 的末尾;花费 YY,将 cc 中某一个元素加 11 或减 11;花费 ZZ,从 cc 中删除一个元素。最小化将 cc 变为 BB 的总花费。(1) f(i,n)f(i,n):已经生成 BB 的前 ii 个元素,BiB_i 使用 AkA_k 生成。f(i,0)f(i,0):已经追加了一份新的 AA,但还没有处理其中任何位置。O(MN2)\mathcal{O}(MN^2)。
(2) 定义 g(i,k)=f(i,k)−kZg(i,k)=f(i,k)-k Z 优化转移,O(MN)\mathcal{O}(MN)。
73公式的优化 DP。
DHard求 1∼N1 \sim N 的排列 PP,满足 Ai=1/0/?A_i=1/0/? 表示 P[1,i]P[1,i] 是连续集 / 不是连续集 / 随便;Bi=1/0/?B_i=1/0/? 表示 P[i,N]P[i,N] 是连续集 / 不是连续集 / 随便。(1) 令 A1=BN=AN=B1=1A_1=B_N=A_N=B_1=1。若 2≤j≤i≤N−12\le j\le i\le N-1,且 Bj=Ai=1B_j=A_i=1,那么 Aj−1=Bi+1=1A_{j-1}=B_{i+1}=1。如果冲突则无解。
(2) 构造。若 Ai=Bi+1=1A_i=B_{i+1}=1,从 ii 处切成两块,左右两侧值域不交。按顺序给各块分配数字,每块内部先降序排列,再微调:第一块只需额外满足 AA;最后一块只需额外满足 BB,其它块内部无 1,自然已经满足。
(3) 特判没有分界(如 1?001, 1?111),设 l=max⁡{i<N:Ai=1}l=\max\{i<N:A_i=1\},r=min⁡{i>1:Bi=1}r=\min\{i>1:B_i=1\},一定有 r−l≥2r-l\ge2,否则切成了两块。(a) 若 r=l+2r=l+2,中间唯一的位置 c=l+1c=l+1 必须满足 Ac=1A_c=1 或 Bc=1B_c=1,否则两者都是 00 时前后两个连续集只剩一个数没放,至少一边会连续,无解(如 11001, 10011)。把可用的 ?? 补成 11,按 (2)。(b) 若 r−l>2r-l>2,在 l+1l+1 放 11,在 r−1r-1 放 NN,其余的三块按 (2)。O(N)\mathcal{O}(N)。
*没有分界的情形要考虑清楚。
GMaster长度为 2N2^N 的序列 AA。任意操作:选择 mm 和 kk,对 0≤i≤m0 \le i \le m,将 A[i⊕k]A[i \oplus k] 减少 11。最小化操作次数,使变为全 0 数组。非常困难。
HMedium初始 M=0,P=0M=0, P=0。回合开始时,可花费 XX 将 MM 增加 11,或花费 YY 将 PP 增加 11。第 AiA_i 回合须 M+P≥BiM+P \ge B_i。每个回合结束时,PP 变为 max⁡(P−1,0)\max(P-1, 0)。最小化总花费。先算仅使用 PP 的方案,再枚举 MM。把 MM 增加到 M+1M+1 时,若之前某次操作把 PP 补到 BB,且 P≤M<BP\le M<B,那么现在就能少买 11 单位 PP。设这种操作共有 cc 次,那么节省 cYcY,净成本是 X−cYX-cY,O(Qlog⁡V)\mathcal{O}(Q \log V)。162图形化更容易发现性质。
JHard长度为 2N2N 的整数序列 AA,每个整数恰好出现两次。构造长度为 2N2N 的 RBS SS,使分别连接匹配的左右括号,连接 AA 中的每个值的两次出现后,得到包含 2N2N 条边的环。先随便构造一个 RBS,得到的图是若干互不相交的环。考虑把两个环合并的方法,即从两个不同的环中各删去一条边,再交叉连接这四个端点。在 RBS 中,将相邻的 )( 改为 ()。用并查集判断是否属于同一个环,O(N)\mathcal{O}(N)。46很困难,不好想。
NN 点 MM 边无向简单图 GG。称一个 1∼N1 \sim N 的排列 PP 为图 GG 的合法标号,当且仅当对边 (u,v)(u, v),均满足 Pu+Pv≤N+1P_u + P_v \le N + 1。first 依据图 GG 和合法标号 PP,输出非空二进制串 SS。second 依据 GG 和 SS,输出任意合法标号 P′P'。
隐藏 NN 节简单连通边仙人掌(每条边至多属于一个简单环)。询问两个节点 x,yx, y 和集合 SS,交互器返回在删除 SS 中所有点及其关联边后 x,yx, y 是否连通。询问代价 ∣S∣−1\lvert S \rvert -1。总询问次数 ≤3N2\le 3N^2,总代价 ≤N⌈log⁡2N⌉+2N\le N\lceil \log_2 N\rceil + 2N。回答图结构。
MEasy模拟。模拟。38

G (draft)

建立满二叉字典树。

对某棵子树,称

  • 整操作:操作覆盖这子树的全部叶子;
  • 零操作:操作位于这棵子树内但不覆盖全部叶子。

合法操作的转化

需要最少的区间覆盖整个字典树。

考虑合并两个子节点的操作:

  • 左整操作与右整操作:可以合并;
  • 整操作与另一边的零操作:可以合并;
  • 左右零操作:不能合并。

DP

对子树 uu,定义

  • aa:最多有多少个整操作,a=min⁡c∈children(u)Aca=\min_{c \in \text{children}(u)} A_{c}。
  • cc:最少需要多少个零操作,即无论整操作怎么安排,都至少需要 cc 次零操作。
  • bb:零操作为 cc 不变的情况下,整操作可以从 aa 降到 a−ba-b,而且对任意 0≤t≤b0\le t\le b,都存在方案满足 (a−t)(a-t) 次整操作 + cc 次零操作。也就是说,可以把整操作拆开并重新分配给零操作,使零操作的数量不增加,但整操作少了一次。

答案是 a−b+ca-b+c。

转移步骤:

  1. 左右整块先配对,得到 a←min⁡(aL,aR)a \gets \min(a_L,a_R)。
  2. 整块若有剩余,只会出现在一侧,设为 aL′,aR′a_L',a_R',有两个去向:
    • 和另一边的零操作合并,c←min⁡(aL′,cR)+min⁡(aR′,cL)c \gets \min(a_L',c_R)+\min(a_R',c_L);
    • 使用所在子节点的 bb,在子节点内部吸收掉,c←min⁡(aL′,bL,cL)+min⁡(aR′,bR,cR)c \gets \min(a_L',b_L,c_L)+\min(a_R',b_R,c_R)。
  3. 整块、零块若还有剩余,加到 cc 上。
  4. 计算父节点还能减少多少整块,b←min⁡(a, bL+cR, bR+cL)b \gets \min(a, \ b_L+c_R,\ b_R+c_L)。