#5441. Problem 3. Swap to Win

0

Problem 3. Swap to Win

3. 交换致胜 (Swap to Win)

USACO 2026 第三场竞赛, 铜组

Farmer John 有一个他最喜欢的字符串 tt,长度为 MM。他还有 NN 个字符串 s1,s2,,sNs_1, s_2, \ldots, s_N,每个长度也为 MM (1N,M10001 \leq N, M \leq 1000)。

FJ 可以执行以下两种类型的操作:

  1. FJ 选择任意一个字符串 sxs_x 和两个下标 ppqq。然后,他交换 sxs_x 中第 pp 个和第 qq 个字符 (1xN,1p,qM1\le x\le N, 1\le p,q\le M)。
  2. FJ 选择两个字符串 sxs_xsys_y 以及一个下标 kk。然后,他交换 sxs_xsys_y 的第 kk 个字符 (1x,yN,1kM1\le x,y\le N, 1\le k\le M)。

他的目标是使 s1s_1 等于 tt。请找出任意一系列能够达成目标的操作。由于 FJ 很匆忙,他总共只有时间执行 2M2M 次操作。输入保证能够实现 FJ 的目标。

输入格式(从终端 / 标准输入读入):

第一行包含 TT (1T101\le T\le 10),表示独立测试用例的数量。每个测试用例的格式如下:

第一行包含 NNMM

第二行包含 tt

接下来 NN 行,第 ii 行包含 sis_i

输入保证能够实现 FJ 的目标。所有字符串只包含小写英文字母(a-z)。

输出格式(输出至终端 / 标准输出):

每个测试用例的输出格式如下:

第一行输出一个整数 KK,表示你将执行的操作次数。KK 必须是一个非负整数,且小于等于 2M2M

然后输出 KK 行,按顺序表示你将执行的操作。每行应为以下格式之一:

1 x p q\texttt{1 x p q} 2 x y k\texttt{2 x y k}

样例输入:


3
3 6
banana
nabana
banana
nnbaaa
5 3
abc
def
bca
ghi
jkl
mno
3 5
abcde
abcde
abcde
zzzzz

样例输出:


3
2 1 2 1
1 1 3 5
2 1 2 5
5
1 2 1 3
2 1 2 1
1 2 2 3
2 1 2 2
2 1 2 3
0

根据第一个测试用例的输出,ss 的变化过程如下(被交换的字母用大写表示):


nabana    Babana    baNaBa    banaNa
banana -> Nanana -> nanana -> nanaBa
nnbaaa    nnbaaa    nnbaaa    nnbaaa

经过所有三次操作后,s1=ts_1 = t

评分标准:

  • 输入 2-6:N,M100N, M \le 100
  • 输入 7-12:无额外限制。

题目来源:Chongtian Ma