#P17196. [KOI 2026 #2] 序列运算

    ID: 19512 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 显示难度暂无评定 上传者: 标签>Special Judge2026KOI(韩国)

[KOI 2026 #2] 序列运算

题目描述

给定长度为 NN 的序列 A=[A1,A2,,AN]A=[A_1,A_2,\cdots,A_N] 和长度为 MM 的序列 B=[B1,B2,,BM]B=[B_1,B_2,\cdots,B_M]

序列 AA 是由整数 1,2,,N1,2,\cdots,N 各恰好出现一次构成的序列。序列 BB 的每个元素都在 11NN 之间,且所有元素两两不同。

将要进行运算的序列记为 XX。初始时,序列 XX 与序列 AA 相同。你可以对序列 XX 执行以下两种运算任意多次(也可以一次都不执行)。

  • 交换运算

    X=[X1,X2,,XK]X=[X_1,X_2,\cdots,X_K]

    选择一个满足 1iK11 \le i \le K-1Xi<Xi+1X_i<X_{i+1} 的整数 ii,交换相邻两个元素 XiX_iXi+1X_{i+1} 的值。

  • 合并运算

    X=[X1,X2,,XK]X=[X_1,X_2,\cdots,X_K]

    选择一个满足 1iK11 \le i \le K-1 的整数 ii,将相邻两个元素 XiX_iXi+1X_{i+1} 合并为一个元素 min(Xi,Xi+1)\min(X_i,X_{i+1})

    也就是说,执行该运算后,序列 XX 的长度减少 11

请判断能否使用给定运算将序列 XX 变成序列 BB。若可以,请找出任意一个将序列 XX 变为序列 BB 的运算序列。

请注意,不需要最小化运算次数。

输入格式

第一行依次给出两个以空格分隔的整数 NNMM

第二行依次给出 NN 个以空格分隔的整数 A1,A2,,ANA_1,A_2,\cdots,A_N

第三行依次给出 MM 个以空格分隔的整数 B1,B2,,BMB_1,B_2,\cdots,B_M

输出格式

如果无法将序列 XX 变成序列 BB,则在第一行输出 NO

如果可以将序列 XX 变成序列 BB,则按如下格式输出:

第一行输出 YES

第二行输出要执行的运算次数 QQQQ 必须满足:

0QN20 \le Q \le N^2

接下来的 QQ 行按执行顺序输出各次运算。每次运算必须采用以下两种格式之一:

  • 1 i

    对序列 XX 的第 ii 个元素和第 i+1i+1 个元素执行交换运算。

    设执行该运算前序列 XX 的长度为 KK,则必须满足 1iK11 \le i \le K-1,且序列 XX 的第 ii 个元素的值小于第 i+1i+1 个元素的值。

  • 2 i

    对序列 XX 的第 ii 个元素和第 i+1i+1 个元素执行合并运算。

    设执行该运算前序列 XX 的长度为 KK,则必须满足 1iK11 \le i \le K-1

所有位置均以执行相应运算前的序列 XX 为准,序列的第一个位置编号为 11

按照输出的全部运算依次执行后,所得序列必须与序列 BB 完全相同。

如果存在多种可行输出,输出其中任意一种均视为正确。

如果能使用给定运算将序列 XX 变成序列 BB,则可以证明,一定存在满足上述全部条件的输出。

4 2
1 4 2 3
3 1
YES
6
1 1
1 2
1 3
2 1
1 1
2 2
2 1
1 2
2
NO
4 4
3 2 1 4
3 1 2 4
NO
4 2
1 3 2 4
1 3
NO

提示

样例 1 解释

序列 XX 发生如下变化:

$[1,4,2,3]\to[4,1,2,3]\to[4,2,1,3]\to[4,2,3,1]\to[2,3,1]\to[3,2,1]\to[3,1]$

因此,可以将序列 XX 变成序列 BB

限制条件

  • 给出的所有数均为整数。
  • 1MN30001 \le M \le N \le 3\,000
  • 序列 AA1,2,,N1,2,\cdots,N 的一个排列,即 {A1,A2,,AN}={1,2,,N}\{A_1,A_2,\cdots,A_N\}=\{1,2,\cdots,N\}
  • 对于每个整数 ii1iM1 \le i \le M),1BiN1 \le B_i \le N
  • B1,B2,,BMB_1,B_2,\cdots,B_M 两两不同。

子任务

  1. 77 分)N8N \le 8
  2. 88 分)M=1M=1
  3. 1212 分)M=NM=N
  4. 1010 分)对于每个整数 ii1iN1 \le i \le N),Ai=iA_i=i
  5. 1313 分)M=N1M=N-1
  6. 1515 分)序列 BB 是序列 AA 的子序列。也就是说,存在满足 1p1<p2<<pMN1 \le p_1<p_2<\cdots<p_M \le N 的整数 p1,p2,,pMp_1,p_2,\cdots,p_M,使得对于每个整数 ii1iM1 \le i \le M),Bi=ApiB_i=A_{p_i}
  7. 3030 分)N300N \le 300
  8. 55 分)没有额外限制。