当前位置: 首页 > 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.存储结构 2.初始化 3.创建节点 4.判断是否满栈 5.判断是否空栈 6.入栈 7.出栈 8.获取栈顶元素 9.遍历栈 10.清空栈 完整代码 前言 前面我们学习过了数组栈的相关方法&#xff0c;&#xff08;链接&#xff1a;线性表-----栈&#xff08;栈…...

实在智能携手40+央企,探索财务大模型及数智化实践与应用

“这次培训给我一个最大的感触就是&#xff0c;过去以为AI智能化、大模型技术是很高深的事情。但现在&#xff0c;我们通过RPA等数字化工具&#xff0c;自主根据自己的工作岗位&#xff0c;完成业务自动化流程的开发和设计。AI技术没有想象中的那么难入门。” 这是一位参加了“…...

upload-labs文件上传1-5关

第一关 编写一句话木马1.php&#xff0c;编写完成后将后缀名修改为png 将1.png上传&#xff0c;上传时使用bp抓包 抓包后将后缀名修改为png 连接蚁剑 第二关 上传1.php&#xff0c;显示文件类型不正确 使用bp抓包发送重发器&#xff0c;修改文件后缀名后点击发送&#xff0c;…...

git的基本使用

查看当前分支 git branch //查看本地分支 git branch -a // 查看本地和远程的分支切分支 git checkout -b 分支的名字从当前分支切换到其他分支 拉取远程分支到本地 拉取远程develop分支代码到本地develop分支 git checkout -b develop origin/developgit merge B分支合并…...

Mac台式电脑内存清理方法教程

对于一些小白用户&#xff0c;如果觉得以上的清理方法比较复杂却又想要更好的优化Mac电脑内存&#xff0c;专业的系统清理软件是一个不错的选择。比起花几个小时时间浏览文件夹、删除临时文件、缓存和卸载残留。Cleanmymac X&#xff0c;只需单击几下即可完成所有内存清理工作&…...

FL Studio怎么破解?2023年最新FL Studio 21图文安装激活教程?FL 21中文版下载 v21.1.1.3750 汉化 版

fl studio21中文解锁特别破解版是一款功能强大的编曲软件&#xff0c;也就是众所熟知的水果软件。它可以编曲、剪辑、录音、混音&#xff0c;让您的计算机成为全功能录音室。除此之外&#xff0c;这款软件功能非常强大&#xff0c;为用户提供了许多音频处理工具&#xff0c;包含…...

Zookeeper高级_四字命令

之前使用stat命令来验证ZooKeeper服务器是否启动成功&#xff0c;这里的stat命令就是ZooKeeper 中最为典型的命令之一。ZooKeeper中有很多类似的命令&#xff0c;它们的长度通常都是4个英文字母&#xff0c;因此我们称之为“四字命令”。 添加配置 vim zoo.cfg 4lw.commands…...

/usr/bin/ld: cannot find -lmysqlcllient

文章目录 1. question: /usr/bin/ld: cannot find -lmysqlcllient2. solution 1. question: /usr/bin/ld: cannot find -lmysqlcllient 2. solution 在 使用编译命令 -lmysqlclient时&#xff0c;如果提示这个信息。 先确认一下 有没有安装mysql-devel 执行如下命令 yum inst…...

折线图geom_line()参数选项

往期折线图教程 图形复现| 使用R语言绘制折线图折线图指定位置标记折线图形状更改 | 绘制动态折线图跟着NC学作图 | 使用python绘制折线图 前言 我们折线的专栏推出一段时间&#xff0c;但是由于个人的原因&#xff0c;一直未进行更新。那么今天&#xff0c;我们也参考《R语…...

百度SEO优化基本原理(掌握SEO基础,提高网站排名)

随着互联网的迅速发展&#xff0c;越来越多的企业开始意识到网站优化的重要性&#xff0c;其中百度SEO优化是企业不可忽视的一项工作。本文将介绍百度SEO优化的基本概念、步骤、原理、解决方法和提升网站标题优化的方法。蘑菇号-www.mooogu.cn 百度SEO优化是指针对百度搜索引擎…...

做任务打字赚钱的网站/免费seo网站

参考&#xff1a;http://www.oschina.net/question/12_70587?from20120923 前两天我们分享了 OSChina 的留言表设计说明&#xff0c;今天继续。 用户动态是用户在 OSChina 上做的一些动作&#xff0c;例如提问、回答问题、动弹、评论动弹、发表新闻评论、代码分享、写博客等等…...

怎么分辨网站是不是h5/免费的短视频app大全下载

xxe漏洞即我们可以进行外部实体注入&#xff0c;当允许引用外部实体时&#xff0c;通过构造恶意内容&#xff0c;可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。 两个writeup 第一题&#xff1a; bp抓包 然后就可以进行xml注入了 这是两种xxe&#x…...

做网站数据库怎么建/网站关键词优化报价

在第三节我们已经介绍了 简单网络的自编码学习 知道了自编码学习其实就是学习到了输入数据的隐含特征&#xff0c;通过新的特征来表征原始数据&#xff0c;本节将介绍如何使用这些隐含特征进行模式分类&#xff1b; 还是以前面的三层自编码网络&#xff1a; 抽象一下如下…...

做药品的b2b网站/今日小说排行榜风云榜

app.config.js 权限设置 export default {...,permission: {scope.userLocation: {desc: 需要获取您的位置信息为您推荐合适的工作岗位}},... };import { getSetting, authorize } from tarojs/taro;/*** 百度定位* returns*/ const getMap () > {return new Promise((res…...

仿牌网站/网站推广的工作内容

2019独角兽企业重金招聘Python工程师标准>>> 1:保存并退出 怎么可以如此简洁啊 :x 等价于 :wq 2:基本计算器 插入模式下&#xff0c;CTRLr后输入等号&#xff0c;再输入一个简单的算是&#xff0c;Enter就可以在正文插入结果了 :Ctrlr 22 Enter >正文中自动插…...

做赚钱网站/谷歌排名查询

今天简单总结一下redis 常用命令 redis 常用数据结构 string :字符串类型是redis最基础的数据结构&#xff0c;首先键是字符串类型&#xff0c;而且其他几种结构都是在字符串类型基础上构建的 String特性&#xff1a; 但最大不能超过512M&#xff1b; 高效的计算字符串长度(时间…...