当前位置: 首页 > news >正文

1095 解码PAT准考证(测试点3)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

solution

  • 测试点3超时:命令为3时,用unordered_map而非map,否则会超时
#include<iostream>
#include<string>
#include<algorithm>
#include<unordered_map>
using namespace std;
const int maxn = 1e4 + 10;
struct stu{string id;int score;friend bool operator < (stu &s1, stu &s2){if(s1.score == s2.score) return s1.id < s2.id;return s1.score > s2.score;}
}stus[maxn], temp[maxn];
int main(){int n, m, com, cnt, sum;string coms;cin >> n >> m;for(int i = 0; i < n; i++){cin >> stus[i].id >> stus[i].score;}for(int j = 1; j <= m; j++){cnt = sum = 0;cin >> com >> coms;cout << "Case " << j << ": " << com << " " << coms << endl;if(com == 1){for(int i = 0; i < n; i++){if(stus[i].id.substr(0, 1) == coms){temp[cnt].id = stus[i].id;temp[cnt++].score = stus[i].score; }}}else if(com == 2){for(int i = 0; i < n; i++){if(stus[i].id.substr(1, 3) == coms){cnt++;sum += stus[i].score;}}if(cnt) cout << cnt << " " << sum << endl;}else{unordered_map<string, int> mp;for(int i = 0; i < n; i++){if(stus[i].id.substr(4, 6) == coms) mp[stus[i].id.substr(1, 3)]++; }for(unordered_map<string, int>::iterator it = mp.begin(); it != mp.end(); it++){temp[cnt].id = it -> first;temp[cnt++].score = it -> second;}}if(com != 2){sort(temp, temp + cnt);for(int i = 0; i < cnt; i++){cout << temp[i].id << " " << temp[i].score << endl;}}if(!cnt) cout << "NA" << endl;}return 0;
} 

或者

#include<iostream>
#include<string>
#include<algorithm>
#include<unordered_map>
#include<vector>
using namespace std;
const int maxn = 1e4 + 10;
struct stu{string id;int score;friend bool operator < (stu &s1, stu &s2){if(s1.score == s2.score) return s1.id < s2.id;return s1.score > s2.score;}
}stus[maxn];
int main(){int n, m, com, cnt, sum;string coms;cin >> n >> m;for(int i = 0; i < n; i++){cin >> stus[i].id >> stus[i].score;}for(int j = 1; j <= m; j++){cnt = sum = 0;vector<stu> vs;cin >> com >> coms;cout << "Case " << j << ": " << com << " " << coms << endl;if(com == 1){for(int i = 0; i < n; i++){if(stus[i].id.substr(0, 1) == coms) vs.push_back(stus[i]);}}else if(com == 2){for(int i = 0; i < n; i++){if(stus[i].id.substr(1, 3) == coms){cnt++;sum += stus[i].score;}}if(cnt) cout << cnt << " " << sum << endl;}else{unordered_map<string, int> mp;for(int i = 0; i < n; i++){if(stus[i].id.substr(4, 6) == coms) mp[stus[i].id.substr(1, 3)]++; }for(unordered_map<string, int>::iterator it = mp.begin(); it != mp.end(); it++){vs.push_back({it -> first, it -> second});}}if(com != 2){sort(vs.begin(), vs.end());for(int i = 0; i < vs.size(); i++){cout << vs[i].id << " " << vs[i].score << endl;}}if(!cnt && !vs.size()) cout << "NA" << endl;}return 0;
} 

相关文章:

  • 海外短剧系统如何征服观众心
  • Docker可视化web工具
  • 工业web4.0UI风格令人惊艳
  • YIA主题侧边栏如何添加3D旋转标签云?
  • Spring Boot与Istio服务网格的整合实践
  • Spring Boot集成Minio插件快速入门
  • 「五度易链」企业大数据API接口开放平台上线啦!
  • EE trade:炒伦敦金的注意事项及交易指南
  • 1962springboot VUE社区服务平台系统开发mysql数据库web结构java编程计算机网页源码maven项目
  • VScode创建ROS项目 ROS集成开发环境
  • 【数学】Leetcode 69. x 的平方根【简单】
  • Linux源码阅读笔记04-实时调度类及SMP和NUMA
  • 跟《经济学人》学英文:2024年6月15日这期 The war for AI talent is heating up
  • AI与音乐:创新之光还是毁灭之剑?
  • 微型操作系统内核源码详解系列五(四):cm3下svc启动任务
  • 【译】理解JavaScript:new 关键字
  • 77. Combinations
  • conda常用的命令
  • Date型的使用
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • express.js的介绍及使用
  • IDEA常用插件整理
  • markdown编辑器简评
  • nginx 负载服务器优化
  • node入门
  • Redis字符串类型内部编码剖析
  • Vue组件定义
  • 关于springcloud Gateway中的限流
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 你不可错过的前端面试题(一)
  • 前嗅ForeSpider中数据浏览界面介绍
  • 数组的操作
  • 移动端唤起键盘时取消position:fixed定位
  • 优化 Vue 项目编译文件大小
  • 原生 js 实现移动端 Touch 滑动反弹
  • 运行时添加log4j2的appender
  • #Linux(Source Insight安装及工程建立)
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #pragma pack(1)
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • (1)Jupyter Notebook 下载及安装
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (函数)颠倒字符串顺序(C语言)
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (算法)区间调度问题
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)ObjectiveC 深浅拷贝学习
  • (转)大道至简,职场上做人做事做管理
  • .env.development、.env.production、.env.staging
  • .net FrameWork简介,数组,枚举
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...