题解:P10296 [CCC 2024 S2] Heavy-Light Composition
P10296 [CCC 2024 S2] Heavy-Light Composition题解
1.算法
这道题很明显是一道字符串。
2.思路
我们可以统计出每个字符出现的次数,然后先看如果是“重”的字符(也就是这个字符出现多次)开头,那就看奇数位是不是全是“重”,偶数位全是轻(也就是这个字符出现一次)。然后再看如果是“轻”的字符开头,那就把上面操作反过来做就行了。
3.代码
#include<bits/stdc++.h>
using namespace std;
int t,n,a[100];
int main(){
cin>>t>>n;
for(int i=1;i<=t;i++){
char s[1000];
memset(a,0,sizeof(a));
cin>>s;
for(int i=0;i<n;i++){
int k=s[i]-'a'+1;
a[k]++;
}
int f=0;
// cout<<a[s[0]-'a'+1]<<" "<<endl;
if(a[s[0]-'a'+1]>1){
for(int i=1;i<n;i++){
if(i%2==0){
if(a[s[i]-'a'+1]<=1){
f=1;
break;
}
}
if(i%2==1){
if(a[s[i]-'a'+1]>1){
f=1;
break;
}
}
}
}
if(a[s[0]-'a'+1]<=1){
for(int i=1;i<n;i++){
if(i%2==0){
if(a[s[i]-'a'+1]>1){
f=1;
break;
}
}
if(i%2==1){
if(a[s[i]-'a'+1]<=1){
f=1;
break;
}
}
}
}
if(f==1){
cout<<"F"<<endl;
}
else{
cout<<"T"<<endl;
}
}
return 0;
}