309608: CF1706A. Another String Minimization Problem
Memory Limit:256 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Another String Minimization Problem
题意翻译
你有一个长为 $m$,初始全为 `B` 的字符串 $s$,和一个长为 $n$ 的数列 $a$。对于 $a$ 中的每个元素 $a_i$,你可以将 $s$ 的第 $a_i$ 位或 $(m+1-a_i$) 位(下标从 $1$ 开始)变为 `A`。求能得到的 $s$ 中字典序最小的一个。 多测,$1\le t\le 2\times10^3$,$1\le n,m\le 50$,$1\le a_i\le m$。 Translated by @Sya_Resory题目描述
You have a sequence $ a_1, a_2, \ldots, a_n $ of length $ n $ , consisting of integers between $ 1 $ and $ m $ . You also have a string $ s $ , consisting of $ m $ characters B. You are going to perform the following $ n $ operations. - At the $ i $ -th ( $ 1 \le i \le n $ ) operation, you replace either the $ a_i $ -th or the $ (m + 1 - a_i) $ -th character of $ s $ with A. You can replace the character at any position multiple times through the operations. Find the lexicographically smallest string you can get after these operations. A string $ x $ is lexicographically smaller than a string $ y $ of the same length if and only if in the first position where $ x $ and $ y $ differ, the string $ x $ has a letter that appears earlier in the alphabet than the corresponding letter in $ y $ .输入输出格式
输入格式
The first line contains the number of test cases $ t $ ( $ 1 \le t \le 2000 $ ). The first line of each test case contains two integers $ n $ and $ m $ ( $ 1 \le n, m \le 50 $ ) — the length of the sequence $ a $ and the length of the string $ s $ respectively. The second line contains $ n $ integers $ a_1, a_2, \ldots, a_n $ ( $ 1 \le a_i \le m $ ) — the sequence $ a $ .
输出格式
For each test case, print a string of length $ m $ — the lexicographically smallest string you can get. Each character of the string should be either capital English letter A or capital English letter B.
输入输出样例
输入样例 #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
输出样例 #1
ABABA
BABBB
A
AABB
ABABBBB
ABABA
说明
In the first test case, the sequence $ a = [1, 1, 3, 1] $ . One of the possible solutions is the following. - At the $ 1 $ -st operation, you can replace the $ 1 $ -st character of $ s $ with A. After it, $ s $ becomes ABBBB. - At the $ 2 $ -nd operation, you can replace the $ 5 $ -th character of $ s $ with A (since $ m+1-a_2=5 $ ). After it, $ s $ becomes ABBBA. - At the $ 3 $ -rd operation, you can replace the $ 3 $ -rd character of $ s $ with A. After it, $ s $ becomes ABABA. - At the $ 4 $ -th operation, you can replace the $ 1 $ -st character of $ s $ with A. After it, $ s $ remains equal to ABABA. The resulting string is ABABA. It is impossible to produce a lexicographically smaller string.In the second test case, you are going to perform only one operation. You can replace either the $ 2 $ -nd character or $ 4 $ -th character of $ s $ with A. You can get strings BABBB and BBBAB after the operation. The string BABBB is the lexicographically smallest among these strings. In the third test case, the only string you can get is A. In the fourth test case, you can replace the $ 1 $ -st and $ 2 $ -nd characters of $ s $ with A to get AABB. In the fifth test case, you can replace the $ 1 $ -st and $ 3 $ -rd characters of $ s $ with A to get ABABBBB.Input
题意翻译
你有一个长为 $m$,初始全为 `B` 的字符串 $s$,和一个长为 $n$ 的数列 $a$。对于 $a$ 中的每个元素 $a_i$,你可以将 $s$ 的第 $a_i$ 位或 $(m+1-a_i$) 位(下标从 $1$ 开始)变为 `A`。求能得到的 $s$ 中字典序最小的一个。 多测,$1\le t\le 2\times10^3$,$1\le n,m\le 50$,$1\le a_i\le m$。 Translated by @Sya_ResoryOutput
题目大意:
你有一个长度为 \( m \) 的字符串 \( s \),初始时全由字符 `B` 组成,还有一个长度为 \( n \) 的整数序列 \( a \)。对于序列 \( a \) 中的每个元素 \( a_i \),你可以将字符串 \( s \) 的第 \( a_i \) 个字符或第 \( m+1-a_i \) 个字符(下标从 1 开始)变为 `A`。求经过这些操作后,能得到字典序最小的字符串 \( s \)。
题目输入输出数据格式:
输入格式:
- 第一行包含一个整数 \( t \)(\( 1 \le t \le 2000 \)),表示测试用例的数量。
- 每个测试用例有两行,第一行包含两个整数 \( n \) 和 \( m \)(\( 1 \le n, m \le 50 \)),分别表示序列 \( a \) 的长度和字符串 \( s \) 的长度。
- 第二行包含 \( n \) 个整数 \( a_1, a_2, \ldots, a_n \)(\( 1 \le a_i \le m \))——序列 \( a \)。
输出格式:
- 对于每个测试用例,输出一行长度为 \( m \) 的字符串——经过操作后字典序最小的字符串。字符串的每个字符都应该是大写英文字母 A 或 B。
输入输出样例:
输入样例 #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
```
输出样例 #1:
```
ABABA
BABBB
A
AABB
ABABBBB
ABABA
```
说明:
- 在第一个测试用例中,序列 \( a = [1, 1, 3, 1] \)。一种可能的解决方案如下:
- 在第一次操作时,你可以将字符串 \( s \) 的第一个字符替换为 A,之后 \( s \) 变为 ABBBB。
- 在第二次操作时,你可以将 \( s \) 的第五个字符替换为 A(因为 \( m+1-a_2=5 \)),之后 \( s \) 变为 BBBBB。
- 在第三次操作时,你可以将 \( s \) 的第三个字符替换为 A,之后 \( s \) 变为 ABABA。
- 在第四次操作时,你可以将 \( s \) 的第一个字符替换为 A,之后 \( s \) 保持为 ABABA。
结果字符串是 ABABA。无法产生字典序更小的字符串。
- 在第二个测试用例中,你将只执行一个操作。你可以将 \( s \) 的第二个字符或第四个字符替换为 A。操作后可以得到字符串 BABBB 和 BBBAB。其中 BABBB 是字典序最小的。
- 在第三个测试用例中,你只能得到字符串 A。
- 在第四个测试用例中,你可以将 \( s \) 的前两个字符替换为 A,得到 AABB。
- 在第五个测试用例中,你可以将 \( s \) 的第一个和第三个字符替换为 A,得到 ABABBBB。题目大意: 你有一个长度为 \( m \) 的字符串 \( s \),初始时全由字符 `B` 组成,还有一个长度为 \( n \) 的整数序列 \( a \)。对于序列 \( a \) 中的每个元素 \( a_i \),你可以将字符串 \( s \) 的第 \( a_i \) 个字符或第 \( m+1-a_i \) 个字符(下标从 1 开始)变为 `A`。求经过这些操作后,能得到字典序最小的字符串 \( s \)。 题目输入输出数据格式: 输入格式: - 第一行包含一个整数 \( t \)(\( 1 \le t \le 2000 \)),表示测试用例的数量。 - 每个测试用例有两行,第一行包含两个整数 \( n \) 和 \( m \)(\( 1 \le n, m \le 50 \)),分别表示序列 \( a \) 的长度和字符串 \( s \) 的长度。 - 第二行包含 \( n \) 个整数 \( a_1, a_2, \ldots, a_n \)(\( 1 \le a_i \le m \))——序列 \( a \)。 输出格式: - 对于每个测试用例,输出一行长度为 \( m \) 的字符串——经过操作后字典序最小的字符串。字符串的每个字符都应该是大写英文字母 A 或 B。 输入输出样例: 输入样例 #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 ``` 输出样例 #1: ``` ABABA BABBB A AABB ABABBBB ABABA ``` 说明: - 在第一个测试用例中,序列 \( a = [1, 1, 3, 1] \)。一种可能的解决方案如下: - 在第一次操作时,你可以将字符串 \( s \) 的第一个字符替换为 A,之后 \( s \) 变为 ABBBB。 - 在第二次操作时,你可以将 \( s \) 的第五个字符替换为 A(因为 \( m+1-a_2=5 \)),之后 \( s \) 变为 BBBBB。 - 在第三次操作时,你可以将 \( s \) 的第三个字符替换为 A,之后 \( s \) 变为 ABABA。 - 在第四次操作时,你可以将 \( s \) 的第一个字符替换为 A,之后 \( s \) 保持为 ABABA。 结果字符串是 ABABA。无法产生字典序更小的字符串。 - 在第二个测试用例中,你将只执行一个操作。你可以将 \( s \) 的第二个字符或第四个字符替换为 A。操作后可以得到字符串 BABBB 和 BBBAB。其中 BABBB 是字典序最小的。 - 在第三个测试用例中,你只能得到字符串 A。 - 在第四个测试用例中,你可以将 \( s \) 的前两个字符替换为 A,得到 AABB。 - 在第五个测试用例中,你可以将 \( s \) 的第一个和第三个字符替换为 A,得到 ABABBBB。
你有一个长度为 \( m \) 的字符串 \( s \),初始时全由字符 `B` 组成,还有一个长度为 \( n \) 的整数序列 \( a \)。对于序列 \( a \) 中的每个元素 \( a_i \),你可以将字符串 \( s \) 的第 \( a_i \) 个字符或第 \( m+1-a_i \) 个字符(下标从 1 开始)变为 `A`。求经过这些操作后,能得到字典序最小的字符串 \( s \)。
题目输入输出数据格式:
输入格式:
- 第一行包含一个整数 \( t \)(\( 1 \le t \le 2000 \)),表示测试用例的数量。
- 每个测试用例有两行,第一行包含两个整数 \( n \) 和 \( m \)(\( 1 \le n, m \le 50 \)),分别表示序列 \( a \) 的长度和字符串 \( s \) 的长度。
- 第二行包含 \( n \) 个整数 \( a_1, a_2, \ldots, a_n \)(\( 1 \le a_i \le m \))——序列 \( a \)。
输出格式:
- 对于每个测试用例,输出一行长度为 \( m \) 的字符串——经过操作后字典序最小的字符串。字符串的每个字符都应该是大写英文字母 A 或 B。
输入输出样例:
输入样例 #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
```
输出样例 #1:
```
ABABA
BABBB
A
AABB
ABABBBB
ABABA
```
说明:
- 在第一个测试用例中,序列 \( a = [1, 1, 3, 1] \)。一种可能的解决方案如下:
- 在第一次操作时,你可以将字符串 \( s \) 的第一个字符替换为 A,之后 \( s \) 变为 ABBBB。
- 在第二次操作时,你可以将 \( s \) 的第五个字符替换为 A(因为 \( m+1-a_2=5 \)),之后 \( s \) 变为 BBBBB。
- 在第三次操作时,你可以将 \( s \) 的第三个字符替换为 A,之后 \( s \) 变为 ABABA。
- 在第四次操作时,你可以将 \( s \) 的第一个字符替换为 A,之后 \( s \) 保持为 ABABA。
结果字符串是 ABABA。无法产生字典序更小的字符串。
- 在第二个测试用例中,你将只执行一个操作。你可以将 \( s \) 的第二个字符或第四个字符替换为 A。操作后可以得到字符串 BABBB 和 BBBAB。其中 BABBB 是字典序最小的。
- 在第三个测试用例中,你只能得到字符串 A。
- 在第四个测试用例中,你可以将 \( s \) 的前两个字符替换为 A,得到 AABB。
- 在第五个测试用例中,你可以将 \( s \) 的第一个和第三个字符替换为 A,得到 ABABBBB。题目大意: 你有一个长度为 \( m \) 的字符串 \( s \),初始时全由字符 `B` 组成,还有一个长度为 \( n \) 的整数序列 \( a \)。对于序列 \( a \) 中的每个元素 \( a_i \),你可以将字符串 \( s \) 的第 \( a_i \) 个字符或第 \( m+1-a_i \) 个字符(下标从 1 开始)变为 `A`。求经过这些操作后,能得到字典序最小的字符串 \( s \)。 题目输入输出数据格式: 输入格式: - 第一行包含一个整数 \( t \)(\( 1 \le t \le 2000 \)),表示测试用例的数量。 - 每个测试用例有两行,第一行包含两个整数 \( n \) 和 \( m \)(\( 1 \le n, m \le 50 \)),分别表示序列 \( a \) 的长度和字符串 \( s \) 的长度。 - 第二行包含 \( n \) 个整数 \( a_1, a_2, \ldots, a_n \)(\( 1 \le a_i \le m \))——序列 \( a \)。 输出格式: - 对于每个测试用例,输出一行长度为 \( m \) 的字符串——经过操作后字典序最小的字符串。字符串的每个字符都应该是大写英文字母 A 或 B。 输入输出样例: 输入样例 #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 ``` 输出样例 #1: ``` ABABA BABBB A AABB ABABBBB ABABA ``` 说明: - 在第一个测试用例中,序列 \( a = [1, 1, 3, 1] \)。一种可能的解决方案如下: - 在第一次操作时,你可以将字符串 \( s \) 的第一个字符替换为 A,之后 \( s \) 变为 ABBBB。 - 在第二次操作时,你可以将 \( s \) 的第五个字符替换为 A(因为 \( m+1-a_2=5 \)),之后 \( s \) 变为 BBBBB。 - 在第三次操作时,你可以将 \( s \) 的第三个字符替换为 A,之后 \( s \) 变为 ABABA。 - 在第四次操作时,你可以将 \( s \) 的第一个字符替换为 A,之后 \( s \) 保持为 ABABA。 结果字符串是 ABABA。无法产生字典序更小的字符串。 - 在第二个测试用例中,你将只执行一个操作。你可以将 \( s \) 的第二个字符或第四个字符替换为 A。操作后可以得到字符串 BABBB 和 BBBAB。其中 BABBB 是字典序最小的。 - 在第三个测试用例中,你只能得到字符串 A。 - 在第四个测试用例中,你可以将 \( s \) 的前两个字符替换为 A,得到 AABB。 - 在第五个测试用例中,你可以将 \( s \) 的第一个和第三个字符替换为 A,得到 ABABBBB。