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

PAT甲级真题1153: 解码PAT准考证

🕺作者: 主页

我的专栏
C语言从0到1
探秘C++
数据结构从0到1
探秘Linux
菜鸟刷题集

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢阅读!!!

文章目录

    • PAT甲级真题1153: 解码PAT准考证
        • 输入格式
        • 输出格式
        • 数据范围
        • 输入样例:
        • 输出样例:
        • AC代码

PAT甲级真题1153: 解码PAT准考证

PAT 准考证号由 4 部分组成:

  • 第 1 位是级别,即 T 代表顶级;A 代表甲级;B 代表乙级;
  • 第 2∼4 位是考场编号,范围从 101到 999;
  • 第 5∼10位是考试日期,格式为年、月、日顺次各占 2 位;
  • 最后 11∼13位是考生编号,范围从 000到 999。

现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信息。

输入格式

输入首先在一行中给出两个正整数 N 和 M,分别为考生人数和统计要求的个数。

接下来 N 行,每行给出一个考生的准考证号和其分数(在区间 [0,100] 内的整数),其间以空格分隔。

考生信息之后,再给出 M 行,每行给出一个统计要求,格式为:类型 指令,其中

  • 类型 为 1 表示要求按分数非升序输出某个指定级别的考生的成绩,对应的 指令 则给出代表指定级别的字母;
  • 类型 为 2 表示要求将某指定考场的考生人数和总分统计输出,对应的 指令 则给出指定考场的编号;
  • 类型 为 3 表示要求将某指定日期的考生人数分考场统计输出,对应的 指令 则给出指定日期,格式与准考证上日期相同。
输出格式

对每项统计要求,首先在一行中输出 Case #: 要求,其中 # 是该项要求的编号,从 1 开始;要求 即复制输入给出的要求。随后输出相应的统计结果:

  • 类型 为 1 的指令,输出格式与输入的考生信息格式相同,即 准考证号 成绩。对于分数并列的考生,按其准考证号的字典序递增输出(题目保证无重复准考证号);
  • 类型 为 2 的指令,按 人数 总分 的格式输出;
  • 类型 为 3 的指令,输出按人数非递增顺序,格式为 考场编号 总人数。若人数并列则按考场编号递增顺序输出。

如果查询结果为空,则输出 NA

数据范围

1≤N≤104,
1≤M≤100

输入样例:
8 4
B123180908127 99
B102180908003 86
A112180318002 98
T107150310127 62
A107180908108 100
T123180908010 78
B112160918035 88
A107180908021 98
1 A
2 107
3 180908
2 999 
输出样例:
Case 1: 1 A
A107180908108 100
A107180908021 98
A112180318002 98
Case 2: 2 107
3 260
Case 3: 3 180908
107 2
123 2
102 1
Case 4: 2 999
NA 
AC代码
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<vector>
#include<string>
using namespace std;const int N=10010;//构建结构体,使得每个人的准考证号和分数绑定 
struct Person
{string id;int grade;//在结构体中重写判断条件 bool operator < (const Person &t) const{if(grade!=t.grade){return grade>t.grade;}else{return id < t.id;}}
}p[N];//构建N个人的数组 int main()
{int n,m;cin>>n>>m;for(int i=0;i<n;++i){cin>>p[i].id>>p[i].grade;}int k=1;//用记录是第几次Case while(m--){string t;//类型 string c;//指令 cin>>t>>c;//c_str()函数,可以将string转为字符串 printf("Case %d: %s %s\n",k,t.c_str(),c.c_str());if(t=="1"){vector<Person> persons;for(int i=0;i<n;i++){if(p[i].id[0]==c[0])//判断级别相同的push到persons数组中 {persons.push_back(p[i]);}}sort(persons.begin(),persons.end());//排序,在结构体中重写判断条件 if(persons.empty())cout<<"NA"<<endl;//是空的说明没有找到 else{for(int i=0;i<persons.size();++i){printf("%s %d\n",persons[i].id.c_str(),persons[i].grade);}}}else if(t=="2"){int cnt=0,sum=0;//cnt记录人数,sum记录总分 for(int i=0;i<n;++i){//substr(1,3),截断从1位置开始,长度为3if(p[i].id.substr(1,3)==c)//比较是否是指定考场 {cnt++;sum+=p[i].grade;} }if(cnt==0){cout<<"NA"<<endl;}else{cout<<cnt<<" "<<sum<<endl;}}else{unordered_map<string,int> hash;//定义哈希,将考场编号和人数对应绑定 for(int i=0;i<n;i++){//substr(4,6),截断从4位置开始,长度为6if(p[i].id.substr(4,6)==c)//考试日期匹配{hash[p[i].id.substr(1,3)]++;//统计在该天中的考场的考生人数}}//pair 默认对first升序,当first相同时对second升序;vector<pair<int,string>> room;for(auto item : hash){//加负号是因为vector默认是升序排序,最后输出时加个负号转正即可room.push_back({-item.second,item.first});}sort(room.begin(),room.end());if(room.empty())cout<<"NA"<<endl;else{for(auto r:room){cout<<r.second<<" "<<-r.first<<endl;}}}k++;}return 0;} 

相关文章:

PAT甲级真题1153: 解码PAT准考证

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…...

linux信号

title: linux信号 createTime: 2020-10-29 18:05:52 updateTime: 2020-10-29 18:05:52 categories: linux tags: SIGHUP 终止进程 终端线路挂断[喝小酒的网摘]http://blog.hehehehehe.cn/a/16999.htm SIGINT 终止进程 中断进程 SIGQUIT 建立CORE文件终止进程&#xff0c;并且生…...

JavaWeb开发-05-SpringBootWeb请求响应

一.请求 1.Postman 2.简单参数 ​ package com.wjh.controller;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;/** 测试请求参数接受*/ R…...

Ubuntu下载

参考文档&#xff1a; 镜像文件&#xff1a;VMware下安装ubuntu 16.04&#xff08;全步骤&#xff09;_vmwaubuntu-16.04.4-desktop-amd64.iso_ST0new的博客-CSDN博客 vmware tools使用安装&#xff1a;VMware——VMware Tools的介绍及安装方法_William.csj的博客-CSDN博客 …...

Vue 的组件加载顺序和渲染顺序

1、结论先行 组件的加载顺序是自上而下的&#xff0c;也就是先加载父组件&#xff0c;再递归地加载其所有的子组件。 而组件渲染顺序是按照深度优先遍历的方式&#xff0c;也就是先渲染最深层的子组件&#xff0c;再依次向上渲染其父组件。 2、案例 下面是一个简单的示例代…...

leetcode Top100(17)矩阵置零

给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]]示例 2&#xff1a; 输入&…...

论文精读(2)—基于稀疏奖励强化学习的机械臂运动规划算法设计与实现(内含实现机器人控制的方法)

目录 1.作者提出的问题及解决方向 2.延深-用如何用强化学习对机器人进行控制 2.1思路 2.2DQN和DDPG在机器人控制中的应用 3.解决方案 3.1思路 3.2实验 3.3创新点 4.展望 1.作者提出的问题及解决方向 目的&#xff1a;使机械臂在非结构化环境下实现端到端的自主学习控制…...

快速安装keepalive

快速安装keepalive #安装 yum install keepalived -y# 查看版本&#xff1a; rpm -q -a keepalived#修改配置文件 vim /etc/keepalived.conf虚拟 ip :随意选一个&#xff0c;不被占用的ip即可。...

nginx实现反向代理实例

1 前言 1.1 演示内容 在服务器上访问nginx端口然后跳转到tomcat服务器 1.2 前提条件 前提条件&#xff1a;利用docker安装好nginx、tomcat、jdk8&#xff08;tomcat运行需要jdk环境&#xff09; 只演示docker安装tomcat&#xff1a; 默认拉取最新版tomcat docker pull t…...

使用Freemarker填充模板导出复杂Excel,其实很简单哒!

文章目录 1. 需求分析2. 对象生成3. 列表插值4. 另存xml格式化5. ftl修改6. 程序转化7. 犯的错误8. 总结 1. 需求分析 类似这样的一个表格 我们需要从数据库中查询对应的数据&#xff0c;将其汇总进该表格&#xff0c;并且可能还需要复制表格项&#xff0c;我这个案例中没有&a…...

windows环境下安装logstash同步数据,注册系统服务

windows环境下安装logstash同步数据&#xff0c;注册系统服务 此方法适用于Windows环境&#xff0c;同一个配置文件配置多个管道&#xff0c;并且配置系统服务&#xff0c;防止程序被杀进程 一、安装logstash &#xff08;1&#xff09;下载压缩包&#xff0c;解压后修改con…...

java服务内存说明及配置详解

java进程内存 JVM内存分布图: 【java进程内存】【堆外内存】 【jvm堆内存】 【堆外内存】 【Metaspace】 【Direct Memory】【JNI Memory】【code_cache】 … 堆外内存泄漏的排查在于【本地内存&#xff08;Native Memory&#xff09;】【Direct Memory】【JNI Memory】 一般…...

Mybatis-MyBatis的缓存

Mybatis-MyBatis的缓存 一、MyBatis的一级缓存二、MyBatis的二级缓存二级缓存的相关配置 三、MyBatis缓存查询的顺序 一、MyBatis的一级缓存 一级缓存是SqlSession级别的&#xff0c;通过同一个SqlSession查询的数据会被缓存&#xff0c;下次查询相同的数据&#xff0c;就 会从…...

计算机组成原理之硬件的基本组成,深入介绍两大计算机结构体系,从底层出发认识计算机。

大家好&#xff0c;欢迎阅读《计算机组成原理》的系列文章&#xff0c;本系列文章主要的内容是从零学习计算机组成原理&#xff0c;内容通俗易懂&#xff0c;大家好好学习吧&#xff01;&#xff01;&#xff01; 更多的优质内容&#xff0c;请点击以下链接查看哦~~ ↓ ↓ ↓ …...

二十五、MySQL事务的四大特性和常见的并发事务问题

1、事务的四大特性 2、常见的并发事务问题 &#xff08;1&#xff09;并发事务问题分类&#xff1a; &#xff08;2&#xff09;脏读&#xff1a; 一个事务正在对一条记录做修改&#xff0c;在这个事务完成并提交前&#xff0c;这条记录的数据就处于不一致的状态&#xff1b;…...

辨析常见的医学数据分析(相关性分析回归分析)

目录 1 常见的三种分类结果&#xff1f; 2 什么是相关性分析&#xff1f; 相关性分析的结果怎么看&#xff1f; 3 什么是回归分析&#xff1f; 1&#xff09;前提 2&#xff09;常见的回归模型 4 对于存在对照组实验的医学病例如何分析&#xff1f; 1&#xff09;卡方检验…...

SpringBoot项目中只执行一次的任务写法

SpringBoot项目中只执行一次的任务写法 有时候我们需要进行初始化工作&#xff0c;就说明只要进行一次的工作&#xff0c;那么&#xff0c;在Springboot项目中如何做到任务只进行一次呢 利用定时任务 在Spring Boot项目中&#xff0c;你可以使用Spring框架提供的Scheduled注解…...

TCK、TMS、TDI、TDO的含义

这四个信号是JTAG&#xff08;Joint Test Action Group&#xff09;界面的一部分。JTAG是一种用于测试和验证集成电路和印刷电路板的技术&#xff0c;也用于进行设备编程和调试。这四个信号分别是&#xff1a; TCK (Test Clock)&#xff1a; 意义&#xff1a;测试时钟&#xff…...

R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据...

全文链接&#xff1a;http://tecdat.cn/?p24456 如果你正在进行统计分析&#xff1a;想要加一些先验信息&#xff0c;最终你想要的是预测。所以你决定使用贝叶斯&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频 但是&#xff0c;你没有共轭先验。你…...

【PowerShell】PowerShell的Core版本的额外配置

在PowerShell 7.1 安装完成后,默认情况下打开PowerShell 会直接进入到系统内置的PowerShell,如果希望通过远程连接或者PowerShell Web Access 进入到PowerShell 7环境的界面,就需要进行环境的再配置才能实现PowerShell 7.1 的环境连接。需要为外部的环境提供连接的话需要按照…...

域环境共享文件夹容量配额管理实战:从配置到组策略映射

1. 域环境共享文件夹容量配额管理入门指南 想象一下公司文件服务器上有个共享文件夹&#xff0c;所有员工都把工作文档往里面扔。突然某天你发现硬盘爆满&#xff0c;系统崩溃&#xff0c;原因竟是市场部的同事上传了200GB的营销视频素材。这种场景在企业IT管理中屡见不鲜&…...

KK-HF_Patch技术解析:游戏增强补丁的架构设计与实践方法

KK-HF_Patch技术解析&#xff1a;游戏增强补丁的架构设计与实践方法 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch 核心价值&#xff1a;重新定义…...

G-Helper开源工具性能优化完全指南:从问题诊断到高级配置

G-Helper开源工具性能优化完全指南&#xff1a;从问题诊断到高级配置 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix,…...

语义分割骨干网络选型指南:MobileNet与Xception实战决策手册

语义分割骨干网络选型指南&#xff1a;MobileNet与Xception实战决策手册 【免费下载链接】deeplabv3-plus-pytorch 这是一个deeplabv3-plus-pytorch的源码&#xff0c;可以用于训练自己的模型。 项目地址: https://gitcode.com/gh_mirrors/de/deeplabv3-plus-pytorch 在…...

Pop Shell浮动窗口配置终极指南:如何让特定应用始终保持浮动状态

Pop Shell浮动窗口配置终极指南&#xff1a;如何让特定应用始终保持浮动状态 【免费下载链接】shell Pop!_OS Shell 项目地址: https://gitcode.com/gh_mirrors/sh/shell Pop!_OS Shell&#xff08;简称Pop Shell&#xff09;是一款为Linux桌面环境设计的高效窗口管理工…...

Selenoid源码深度剖析:理解容器化测试平台的实现原理

Selenoid源码深度剖析&#xff1a;理解容器化测试平台的实现原理 【免费下载链接】selenoid Selenium Hub successor running browsers within containers. Scalable, immutable, self hosted Selenium-Grid on any platform with single binary. 项目地址: https://gitcode.…...

内网开发不求人:保姆级教程搞定Visual Studio 2022与QT 5.12.12离线环境搭建

内网开发不求人&#xff1a;保姆级教程搞定Visual Studio 2022与QT 5.12.12离线环境搭建 在企业内网开发环境中&#xff0c;由于安全规定或网络限制&#xff0c;开发者常常面临无法连接互联网的困境。这种情况下&#xff0c;如何一次性、完整地部署C与QT开发环境成为许多IT支持…...

SAHI切片推理实战:用YOLO做遥感图像小目标检测(含MMDetection对比)

SAHI与YOLO在遥感图像小目标检测中的深度实践指南 遥感图像分析正逐渐成为地理信息、农业监测和城市规划等领域的重要技术手段。面对大尺寸高分辨率图像中的微小目标检测难题&#xff0c;传统目标检测方法往往力不从心。本文将深入探讨如何利用SAHI切片推理技术结合YOLO模型&am…...

深入解析Standard Delay Format(SDF)中的时序约束映射

1. 什么是Standard Delay Format(SDF)&#xff1f; Standard Delay Format&#xff08;标准延迟格式&#xff09;是数字电路设计中用于描述时序信息的标准文件格式。简单来说&#xff0c;它就像电路设计的"时间说明书"&#xff0c;告诉EDA工具信号在电路中传播需要多…...

ClearerVoice-Studio语音增强效果对比:FRCRN与MossFormer2在低SNR表现

ClearerVoice-Studio语音增强效果对比&#xff1a;FRCRN与MossFormer2在低SNR表现 1. 引言&#xff1a;语音增强的技术挑战与实际需求 在日常工作和生活中&#xff0c;我们经常遇到这样的场景&#xff1a;重要的线上会议录音充满键盘敲击声和空调噪音&#xff0c;电话采访的音…...