1 条题解
-
0
自动搬运
来自洛谷,原作者为

Emplace
这个家伙很赖,什么也没有留下搬运于
2025-08-24 22:56:40,当前版本为作者最后更新于2024-04-01 12:08:27,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
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; }
- 1
信息
- ID
- 9900
- 时间
- 3000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者