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

SUNCHAOYI
报名个人赛 https://www.luogu.com.cn/contest/44296搬运于
2025-08-24 22:20:41,当前版本为作者最后更新于2020-04-19 13:41:23,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
首先先要得出这三个人的循环节,分别为:
ABC,BABC与CCAABB。然后就用这三个不同的循环节去比较正确答案。其中需要注意的是,在得出最高的正确数后,还要判断有几个人都获得了最高的分数,也就是说,输出的姓名不只个,这一点需要额外注意。#include <bits/stdc++.h> using namespace std; int main() { int n,ans[3],num = 0;string str,d[3] = {"ABC","BABC","CCAABB"},name[3] = {"Adrian","Bruno","Goran"}; cin>>n>>str; for(int i = 0;i < 3;i++) { ans[i] = 0;//每个人的答案初始化 for(int j = 0;j <= str.size() - 1;j++) if(str[j] == d[i][j % d[i].size()]) ans[i]++;//依次比较循环节 num = max(num,ans[i]);//记录最高的正确数量 } cout<<num<<endl; for(int i = 0;i < 3;i++)//可能不只一个 if(ans[i] == num) cout<<name[i]<<endl; return 0; }
- 1
信息
- ID
- 5412
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者