当前位置:网站首页>【小码匠自习室】[NOI Online 2020-3 入门组] 最急救助:被“幸运女神”眷顾的人
【小码匠自习室】[NOI Online 2020-3 入门组] 最急救助:被“幸运女神”眷顾的人
2022-08-08 13:52:00 【小码匠】
碎碎念
- 我,小码匠,作为被“幸运女神”眷顾的人,竟然只有一个case发生了排序后顺序打乱的问题!
标签
- 模拟、排序
题目地址
- [NOI Online #3 入门组] 最急救助
- https://www.luogu.com.cn/problem/P6565
题目描述
救助中心每天都要收到很多求救信号。收到求救信号后,救助中心会分析求救信号,找出最紧急的求救者给予救助。
求救信号是一个由小写英文字母组成的字符串,字符串中连续三个字符依次组成sos
的情况越多(即包含子串sos
的数目越多),代表着求救者情况越紧急。
现在请你帮助救助中心找出最紧急的求救者。注意字符串中包含的sos
可以有重叠,例如sosos
算作包含 2 个sos
。
输入格式
输出格式
输出到标准输出。
输出共两行,第一行是最紧急求救者的名字。如果最紧急求救者有多个,则按照输入的顺序将他们的名字依次输出,相邻两个名字间用空格分隔。
第二行一个整数,表示最紧急求救者的求救信号中包含有多少个sos
子串。
输入输出样例
输入 #1
2
adam
ineedhelpsosineedhelpsos
mark
ineedmorehelpsoshelpmesossoshelpme
输出 #1
mark
3
输入 #2
3
susan
sosososososos
jack
sossossossos
allen
soshelpsossossossossos
输出 #2
susan allen
6
说明/提示
数据规模与约定
- 对于 10% 的数据,n=1。
- 对于所有数据,1≤n≤100,求救者名字长度不超过 20,求救信号长度不超过 200。
题解
小码匠题解一: 90分
- AC: 9
- WA: 1
- 排序后顺序被打乱,导致输出顺序不对
void coder_solution() {
// 提升cin、cout效率
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin >> n;
string s;
vector<pair<int, string>> vpi(n);
for(int i = 0; i < n; ++i) {
cin >> vpi[i].second;
cin >> s;
for(int j = 0; j < s.size(); ++j) {
if(s[j] == 's' && s[j + 1] == 'o' && s[j + 2] == 's') {
vpi[i].first++;
}
}
}
sort(vpi.begin(), vpi.end(), greater<pair<int, string>>());
int max = vpi[0].first;
for(int i = 0; i < n; ++i) {
if(vpi[i].first == max) {
cout << vpi[i].second << "";
} else{
break;
}
}
cout << endl;
cout << max;
}
小码匠题解二
- AC: 10
void coder_solution() {
// 提升cin、cout效率
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin >> n;
string s;
vector<pair<int, string>> vpi(n);
int max_num = 0;
for(int i = 0; i < n; ++i) {
cin >> vpi[i].second;
cin >> s;
for(int j = 0; j < s.size(); ++j) {
if(s[j] == 's' && s[j + 1] == 'o' && s[j + 2] == 's') {
vpi[i].first++;
}
}
max_num = max(max_num, vpi[i].first);
}
for(int i = 0; i < n; ++i) {
if(vpi[i].first == max_num) {
cout << vpi[i].second << " ";
}
}
cout << endl;
cout << max_num;
}
边栏推荐
猜你喜欢
专访|360高瀚昭:ISC十年,360数字安全大脑能够“看见”什么?
KMP Media Group South Africa implemented a DMS (Document Management System) to digitize the process, employees can again focus on their actual tasks, providing efficiency
浅学一下二叉树链式存储结构的遍历
TS+Hooks二次封装antd Modal,实现可拖拽
sample function—R language
译文推荐|深入解析 BookKeeper 协议模型与验证
Verilog语法基础HDL Bits训练 09
暗恋云匹配匿名交友聊天系统开发
logistic回归模型—基于R
【JS高级】ES5标准规范之严格模式下的保护对象_09
随机推荐
【Personal Summary】2022.8.7 Week End
【Rust—LeetCode题解】1.两数之和
《预训练周刊》第56期:长文本理解、即时问答、掩码自监督
HackTheBox | Previse
剑指 Offer 66. 构建乘积数组
HackTheBox | Horizontall
PHP中使用XML-RPC构造Web Service简单入门
Ingress:比Service更强大的服务暴露与负载均衡
R语言ggplot2可视化:使用ggpubr包的ggtexttable函数可视化表格数据(直接绘制表格图或者在图像中添加表格数据)、使用tab_add_hline函数为表头添加横线并自定义线条宽度
哈佛大学砸场子:DALL-E 2只是「粘合怪」,生成正确率只有22%
无头单向非循环链表(C语言实现)
R语言基于指定规则、条件删除列表中的元素:使用purrr包的discard函数移除列表数据中的NA值
webgl 基础
医学图像数据增强-归一化
R语言ggplot2可视化:基于aes函数中的fill参数和shape参数自定义绘制分组折线图并添加数据点(散点)、设置可视化图像的主题为theme_gray
项目动态|Apache Pulsar 2.10.1 版本介绍
【软考 系统架构设计师】软件架构设计⑥ 软件产品线
非科班毕业生,五面阿里:四轮技术面+HR一面已拿offer
textarea 禁止拖拽
跟我一起了解云耀云服务器HECS【华为云至简致远】