pat 乙级 1041 考试座位号(C++)
题目
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。
输入格式:
输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。
考生信息之后,给出一个正整数 M(≤N),随后一行中给出 M 个待查询的试机座位号码,以空格分隔。
输出格式:
对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用 1 个空格分隔。
输入样例:
4
3310120150912233 2 4
3310120150912119 4 1
3310120150912126 1 3
3310120150912002 3 2
2
3 4
输出样例:
3310120150912002 2
3310120150912119 1
分析
- 方法1:暴力求解。先把考生信息存下来,结构体数组,或者开3个数组都可以。然后对每次输入的试机号,都在考生信息里遍历一遍,找到准考证号和考试座位号。
- 方法2:把试机号作为数组下标,开两个数组(N+1)或者用一个结构体数组存(N+1),然后对每次输入的试机号,直接就可输出与待查试机号相等的考生信息。
AC代码
方法1代码
#include<iostream>
using namespace std;
struct Info
{string id;int test;int exam;
};
int main()
{int i,j,N,M;cin>>N;Info stu[N];for(i=0; i<N; i++){cin>>stu[i].id>>stu[i].test>>stu[i].exam;}cin>>M;int temp;for(i=0; i<M; i++){cin>>temp;for(j=0; j<N; j++){if(temp==stu[j].test){cout<<stu[j].id<<" "<<stu[j].exam;break;}}if(i!=M-1)cout<<endl;}return 0;
}
方法2代码
#include<iostream>
using namespace std;
struct Info
{string id;int exam;
};
int main()
{int i,N,M,test,exam,temp;string id;cin>>N; Info stu[N+1];stu[0].id=" "; stu[0].exam=0; for(i=0; i<N; i++){cin>>id>>test>>exam;stu[test].id=id;stu[test].exam=exam; }cin>>M;for(i=0; i<M; i++){cin>>temp;cout<<stu[temp].id<<" "<<stu[temp].exam;if(i!=M-1)cout<<endl;}return 0;
}
在数据量较小的时候,方法1和方法2并没有太多区别。但当数据量较大时,方法1有超时的风险。
更多题解
pat 乙级(Basic Level) 题解汇总(持续更新)(C++)
pat 乙级 1041 考试座位号(C++)相关推荐
- PAT 乙级 1041 考试座位号 (15分)
1041 考试座位号 (15分) 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的 ...
- PAT乙级-1041 考试座位号 (15分)
点击链接PAT乙级-AC全解汇总 题目: 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示 ...
- [PAT乙级]1041 考试座位号
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...
- PAT 乙级 1041. 考试座位号(15) Java版
每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...
- PAT乙级—1041 考试座位号 (15分)
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...
- PAT乙级 | 1041 考试座位号 (15分)
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...
- PAT 乙级 1041 考试座位号
思路是 以"试机座位号"为关键字,"准考证号"和"考试座位号"为值建立一张表,把信息储存到这张表内,查询的时候直接查表即可. #includ ...
- PAT乙级-1041 考试座位号
题目描述 实现代码 #include<iostream> #include<string> using namespace std;int main(void) {int n; ...
- C++学习之路 | PTA乙级—— 1041 考试座位号 (15 分)(精简)
1041 考试座位号 (15 分) 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生 ...
最新文章
- Linux拷贝数据死机了,Linux系统“死机”时怎么办?
- 一本Python数据分析入门宝藏书,快藏不住了!
- Redis存储总用String?你大概错过了更优的使用方法
- Taylor Swift - Red
- 扑克牌比大小c语言,算了算学了有一个月c语言了,写了个扑克牌程序
- Direct3D的一些小贴士收藏(转载)
- “Shopee杯” e起来编程暨武汉大学2020年大学生程序设计大赛决赛(重现赛)
- 人在囧途!12306买到相同高铁票 回应:可能是机器故障
- 【2021Java最新学习路线】java前端开发
- CCF201712-5 商路(60分题解链接)
- 10个有关RESTful API良好设计的最佳实践
- Azure KUDU工具
- 读书笔记(从0到1)
- somachine3.1安装包和注册文件
- 搭讪培训班 - 名品试用 - YOKA时尚论坛 - YOKA社区
- WPA3也不安全啦?WPA3-R3 H2E了解一下
- 2023湖南大学计算机考研信息汇总
- 稳压集成块LM78XX LM79XX
- DSO源码解析学习笔记(初始化)
- ③计算机病毒实验实验报告
热门文章
- powermock模拟对象_使用PowerMock模拟构造函数
- apache wicket_Apache Wicket:记住我的功能
- jaxb需要jar包吗_JAXB –不需要注释
- Redis教程:NoSQL键值存储
- 使用Spring Cloud休息客户电话
- 使用Spring Boot对REST URL进行集成测试
- 使用Docker,Chef和Amazon OpsWorks进行集群范围的Java / Scala应用程序部署
- Java 8 Friday Goodies:SQL ResultSet流
- 实体管理器的类型:应用程序管理的EntityManager
- NoSQLUnit 0.3.0发布