1 条题解
-
2
题目描述
小 Y 给了小 X 一个长度为 的只包含大写字母 的字符串。你可以对这个字符串进行如下操作:将子串 变成 。 小 X 想知道这个字符串最多能进行多少次操作。 一个字符串的子串是把这个字符串通过删去头部和尾部若干个字符形成的字符串。例如: 是 的子串, 不是 的子串。
思路解析
我们首先考虑,如果把一个 变成 ,会有什么影响,或者说,会对答案产生什么新的贡献。
我们可以考虑将一个字符串分成三个部分,,,和其他部分。当你将中的换到前面时,这个可能会和前面的结合再次贡献答案。而被换到后面的也可能和后面的结合,贡献一次答案。
所以结论很明显了,每次找到一个,统计它前面连续的的数量,和后面连续的,两个数量相乘得的数量计入答案。最后输出
代码呈现
#include<bits/stdc++.h> using namespace std; int main(){ //自己写,别学PuBliC return 0; }
- 1
信息
- ID
- 675
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 181
- 已通过
- 15
- 上传者