dmy NOI 长训 3.23

Apparently Make UTPC

给定三个正整数序列:

  • \(A = (A_1, A_2, \dots, A_X)\),长度为 \(X\)
  • \(B = (B_1, B_2, \dots, B_Y)\),长度为 \(Y\)
  • \(C = (C_1, C_2, \dots, C_Z)\),长度为 \(Z\)

且满足 \(X \leq Y \leq Z\)
你需要重排序列 \(C\) 的元素,使得重排后的序列同时包含 \(A\)\(B\) 作为连续子序列
请判断该目标是否可以实现:

  • 如果可以实现,求出重排后字典序最小的序列 \(C\)
  • 如果无法实现,输出对应结果。

共给定 \(T\) 组测试用例,需要对每组用例分别求解。

怎么会了。

首先特判 \(B\) 包含 \(A\),单独计算 \(A\)\(B\) 无交,特判无解。然后我们假定 \(A\)\(B\) 前面,可以求出最大的 \(k\) 使得 \(A_{X-k+1}\cdots\A_X=B_1\cdots B_k\),对着这个后缀跑 border 可以求出所有可能的 \(A\)\(B\) 交集长度。然后

posted @ 2026-03-23 06:55  Xuan_tmp  阅读(1)  评论(0)    收藏  举报