agc059 A - My Last ABC Problem
题意:
排列可视为映射
给定一个 A,B,C
字符串 str
。每次操作选择一个子串并对其应用一个 ABC
的排列对应的映射。每次询问至少要多少次操作才能让子串 str[l..r]
中的全部字符相同
思路:
放一份完美题解
https://www.cnblogs.com/Appleblue17/p/17019258.html
const int N = 1e5 + 5;
char str[N];
int n, q, s[N];
void sol() {
cin >> n >> q >> (str + 1);
for(int i = 1; i <= n; i++)
s[i] = s[i - 1] + (str[i] != str[i - 1]);
while(q--) {
int l, r; cin >> l >> r;
cout << (s[r] - s[l - 1] + (str[l] == str[l - 1]) //这里不考虑会少算
+ (str[l] != str[r])) / 2 << '\n';
}
}
标签:
思维
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2022-01-05 cf242 E. XOR on Segment(线段树)
2022-01-05 cf721 D. Maxim and Array(贪心)