CF1706A.Another String Minimization Problem

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Another String Minimization Problem

题目描述

你有一个长度为 nn 的序列 a1,a2,,ana_1, a_2, \ldots, a_n,其中每个元素都是 11mm 之间的整数。你还有一个由 mm 个字符 B 组成的字符串 ss

你将进行如下 nn 次操作:

  • 在第 ii 次操作(1in1 \le i \le n)时,你可以将 ss 的第 aia_i 个字符或第 (m+1ai)(m + 1 - a_i) 个字符替换为 A。在所有操作过程中,你可以多次替换同一个位置的字符。

请你求出经过这 nn 次操作后,能够得到的字典序最小的字符串。

如果两个长度相同的字符串 xxyy,在第一个不同的位置,xx 的字母在字母表中比 yy 的字母靠前,则称 xx 的字典序小于 yy

输入格式

第一行包含一个整数 tt1t20001 \le t \le 2000),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nnmm1n,m501 \le n, m \le 50),分别表示序列 aa 的长度和字符串 ss 的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1aim1 \le a_i \le m),表示序列 aa

输出格式

对于每个测试用例,输出一个长度为 mm 的字符串,即你能得到的字典序最小的字符串。字符串中的每个字符应为大写英文字母 A 或 B。

说明/提示

在第一个测试用例中,序列 a=[1,1,3,1]a = [1, 1, 3, 1]。一种可能的方案如下:

  • 11 次操作,你可以将 ss 的第 11 个字符替换为 A。此时 ss 变为 ABBBB。
  • 22 次操作,你可以将 ss 的第 55 个字符替换为 A(因为 m+1a2=5m+1-a_2=5)。此时 ss 变为 ABBBA。
  • 33 次操作,你可以将 ss 的第 33 个字符替换为 A。此时 ss 变为 ABABA。
  • 44 次操作,你可以将 ss 的第 11 个字符替换为 A。此时 ss 仍为 ABABA。

最终得到的字符串为 ABABA。无法得到字典序更小的字符串。

在第二个测试用例中,你只进行一次操作。你可以将 ss 的第 22 个字符或第 44 个字符替换为 A。你可以得到 BABBB 或 BBBAB,其中 BABBB 的字典序最小。

在第三个测试用例中,唯一能得到的字符串是 A。

在第四个测试用例中,你可以将 ss 的第 11 个和第 22 个字符替换为 A,得到 AABB。

在第五个测试用例中,你可以将 ss 的第 11 个和第 33 个字符替换为 A,得到 ABABBBB。

由 ChatGPT 4.1 翻译

样例

6
4 5
1 1 3 1
1 5
2
4 1
1 1 1 1
2 4
1 3
2 7
7 5
4 5
5 5 3 5
ABABA
BABBB
A
AABB
ABABBBB
ABABA

在线编程 IDE

建议全屏模式获得最佳体验