AT_agc072_b.[AGC072B] AGC Language
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
AGC 语是指仅由相同数量的 A 和 C 组成,且任意前缀中 A 的数量都不少于一半的长度不少于 2 的字符串。现给定一个由 N 个 A 和 N 个 C 组成的 2N 长度的字符串 S,请你针对 k=1,2,…,K 回答以下问题:
在黑板上写下 S 重复 k 次得到的字符串。你可以按以下顺序进行操作,使黑板上的字符串变为 AGC 语。
- 仅进行一次如下操作:
- 选择整数 (l,r),1≤l≤r≤2kN,将字符串第 l 到第 r 个字符的子串反转。
- 可以进行零次或多次如下操作:
- 交换字符串中相邻的两个字符。
请计算最少需要多少次交换操作。
前缀的定义为:字符串 Y 是字符串 X 的前缀,当且仅当 1≤∣Y∣≤∣X∣,且 X 的前 ∣Y∣ 个字符等于 Y。例如,ATC 是 ATCODER 的前缀,但 AGC 和 ATCODERGRANDCONTEST 都不是 ATCODER 的前缀。
输入格式
输入以如下格式从标准输入读入:
N K S
输出格式
请输出 K 行,第 i 行输出当 k=i 时的答案。
输入输出样例
输入#1
1 2 AC
输出#1
0 0
输入#2
5 1 CACAAACCCA
输出#2
1
输入#3
10 10 ACCCAAAACCCACCACAACA
输出#3
1 2 3 3 3 3 3 3 3 3
输入#4
50 10 ACCCCACAACAAAACCAACCCCACCAACACCAAAACACACAAAACCCCCACCAACACAACAACCCCAACAAACCCAACACACCCACACCAAACCCAAACA
输出#4
10 17 20 22 23 24 25 26 26 26
输入#5
72 10 CCCCACAAAAACCCACACCAAACCACCCCCAAAAACACCACCCCCAAAAAAACAAAAAACCCCCCACCCAAACAACACCACCACAAACCCAACCAACAACCCAAAACAACCCCACCACACACCACACCCACAAACACAACAACA
输出#5
28 42 51 54 57 60 63 64 65 66
说明/提示
限制条件
- 1≤N≤1000000
- 1≤K≤300000
- 字符串 S 由 N 个
A和 N 个C组成,长度为 2N - N 和 K 均为整数
样例解释 1
当 k=1 时,黑板上最初写下的字符串为 AC。当 k=2 时,最初写下的字符串为 ACAC。两种情况下,字符串本身就是 AGC 语,因此例如选择 (l,r)=(1,1),可以通过 0 次交换操作达成目标。
样例解释 2
当 k=1 时,黑板上写下的字符串为 CACAAACCCA。可以按以下步骤操作,仅需 1 次交换操作:
- 选择 (l,r)=(1,4),将第 1 到 4 个字符反转,得到字符串
ACACAACCCA。 - 交换第 9 个和第 10 个字符,得到字符串
ACACAACCAC,这是一个 AGC 语。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?