专栏文章

题解:AT_agc034_b [AGC034B] ABC

AT_agc034_b题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@ming2u1i
此快照首次捕获于
2025/12/02 01:50
3 个月前
此快照最后确认于
2025/12/02 01:50
3 个月前
查看原文

题目传送门

认为是大水题,于是暴力在AtCoderTLE了

思路:

  • 再由 ABC 变成 BCA 的过程中,可以把 BC 看成一个整体,ABC 前移到 BC 后。
  • 显然单独的 CB 是没有用处的。所以只保留 BCA

代码实现 :

CPP
#include <iostream>
#include <string>
using namespace std;

int main() {
    string s;  
    cin >> s;
    long long a = 0, result = 0;  // a记录连续A的数量,result记录最终结果
    
    // 遍历字符串
    for (int i = 0; i < s.size(); ) {
        if (s[i] == 'A') {
            a++;  // 增加连续A的计数
        } 
        else if (s[i] == 'B' && i + 1 < s.size() && s[i+1] == 'C') {
            result += a;  // 将之前累计的A数量加到结果中
            i += 2;
        } 
        else {
            a= 0;  
            i++;         
        }
    }
    
    cout << result << endl; 
    return 0;
}
//by:carryguo
本蒟蒻第一篇题解,求过!QWQ

评论

0 条评论,欢迎与作者交流。

正在加载评论...