#ATagc066d. [AGC066D] A Independent Set
[AGC066D] A Independent Set
题目描述
给定一个由 A 和 B 组成、长度为 的字符串 。保证 中 A 的个数不超过 。此外,给定一个正整数序列 。
你可以对该字符串重复进行如下操作:
- 选择满足 的整数 ,交换 的第 个字符和第 个字符。该操作的代价为 。
你的目标是使 中任意两个 A 不相邻。请你求出为达成目标所需的总代价的最小值。
有 组测试数据,请分别输出每组的答案。
输入格式
输入按以下格式从标准输入给出。
每组测试数据格式如下:
输出格式
请输出 行,第 行输出第 组测试数据中,为使 中任意两个 A 不相邻所需的最小总代价。
样例 1
输入
5
4
BAAB
3 4 5
5
BBBBB
1 2 3 4
7
BAAABBB
8 7 6 5 4 3
7
BAAABBB
100 7 6 5 4 3
20
BAABAABBBABAAABBBABB
12 85 37 44 25 14 36 29 71 53 15 47 13 80 14 74 53 76 19
输出
3
0
13
15
133
说明/提示
限制条件
- 是由
A和B组成的长度为 的字符串。 - 中
A的个数不超过 。 - 所有测试数据中 的总和不超过 。
样例解释 1
- 对于第 组测试数据,通过对 进行操作, 由
BAAB变为ABAB,目标达成,总代价为 。 - 对于第 组测试数据,不进行任何操作即可达成目标,总代价为 。
- 对于第 组测试数据,通过对 、 进行操作, 由
BAAABBB变为ABAABBB,再变为ABABABB,目标达成,总代价为 。 - 对于第 组测试数据,通过对 、、 进行操作, 由
BAAABBB变为BAABABB,再变为BABAABB,再变为BABABAB,目标达成,总代价为 。
由 ChatGPT 4.1 翻译