专栏文章

题解:CF2121B Above the Clouds

CF2121B题解参与者 2已保存评论 1

文章操作

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

当前评论
1 条
当前快照
1 份
快照标识符
@mip0puzz
此快照首次捕获于
2025/12/03 04:15
3 个月前
此快照最后确认于
2025/12/03 04:15
3 个月前
查看原文

题意

给你一个由小写英文字母组成的长度为 nn 的字符串 ss,让你判断是否有三个非空的字符串 aabbcc,满足:
  • a+b+c=sa+b+c=s
  • bba+ba+b 的字串。

思路

明显当 bb 的长度为 11bb 最有可能成为 a+ca+c 的字串。
那么我们可以开一个桶 tt 来记录 ss 中所有字符出现的次数,然后从 11 枚举到 n2n-2,判断有没有字符出现的次数大于 11 即可。

代码

CPP
#include<iostream>
using namespace std;
int T,n,t[30];
string s;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>T;
	while(T--){
		bool f=1;
		cin>>n>>s;
		for(int i=0;i<n;i++) t[s[i]-'a']++;//统计
		for(int i=1;i<n-1;i++) if(t[s[i]-'a']>1){cout<<"Yes\n",f=0;break;}
		if(f) cout<<"No\n";
		for(int i=0;i<30;i++) t[i]=0;//多测不清空,爆零两行泪
	}
}

评论

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

正在加载评论...